Jump to content
Sign in to follow this  
Mediajuggle

PayPal Webpayments Pro

Recommended Posts

hahahaha

 

i knew a thread like this would be here!

 

add me to the list for happy paypal experience!

 

aldaffodil- pm me, as of right now ive started the path into developing a module for paypal pro. im thinking if we had a few more working together, each handling a different aspect or combined this can be a feature in use by weeks end!

 

any experienced developers want to lend some assitance/input?

Share this post


Link to post
Share on other sites
Super dude! ! let us know when this comes out

 

Thanks

 

Well, I just hit a brickwall. I downloaded the PayPal PHP SDK package to get started and all that was included was a text file that said the package would be available the last week of June. So, I guess I'll just have to keep checking until they release it and hopefully it will be pretty simple.

Share this post


Link to post
Share on other sites
So, why don't you all just start your own PayPal bashing post and leave this one to those who actually want to use the new service?  I've used PayPal for a little over two years now and have never had one single problem.  It is great for keeping costs down for small, home-office retailers like myself.

 

I am going to try to work on a new contribution for the website payments pro, but who knows how far I'll get before it all comes crashing down  :-)  I am hoping to work on it tomorrow, and if I run into any problems, I'll try to post them here for a little help.

 

 

I'll be looking forward to seeing how this works out! :D


No gimmics. Just good reading. http://www.stonegarden.net

Share this post


Link to post
Share on other sites

Yes this contribution is a must. I only wish I knew enough about PHP to do it myself. Unfortunatly when it comes to writing code from scratch I am nothing more than a "POSER".

 

Now reverse enginering and modifiying I rock at! LOL Shhhhhhh

 

As far as paypal problems we all have problems with something. I have been using paypal since it was created so long ago I cant remember when it started LOL! Never had a problem that I did not create.

 

I would get upset when I would login and there would be no money in there. After blaming paypal for that I then relized I spent it on Beer and Cigaretts at the bar last night!!!!!! LOL


Paintball, Coding, and Hotpockets does it get better than this!

Share this post


Link to post
Share on other sites

This is ideal for me. I sell dolls, doll furniture and clothing and have most of my sales during the Christmas shopping season. I don't want to be paying monthly fees on a merchant account for the rest of the year. This PayPal option doesn't require any long-term contract. It won't work for everyone, but there are those of us that could put it to good use.

Share this post


Link to post
Share on other sites

Dear xx,

 

Thank you for contacting PayPal. We apologize for the delay in responding

to your service request.

 

I sincerely apologize for the inconvenience, but Website Payments Pro is a

feature for US Business/Premier accounts only. At this time there is no

timeframe for expanding the availability of this service.

 

I understand your frustration regarding this matter and apologize for any

inconvenience it might have caused you.

 

Sincerely,

xx

PayPal Community Support

PayPal, an eBay Company

 

=======================================

I hope google can make something better, well they always did, something takes advantage of the internet - Instant & International

Share this post


Link to post
Share on other sites

is anyone working on this contribution yet? i already have an account subscribed on it and im opening a business with someone else in about a week.. need this ASAP!!! if no one started on this im just gonna try to haphazardly make one myself. there are no downsides at all to using this service, we looked it all around and its fabulous.

 

you don't pay anything until end of october as well. right now its free for everyone :)

Edited by cwdmark

Share this post


Link to post
Share on other sites

Im doing a crash course on all this now, anyone else working on the paypal pro system? i want to have this running and working tonight, weeks end no later!!!

Share this post


Link to post
Share on other sites
Im doing a crash course on all this now, anyone else working on the paypal pro system? i want to have this running and working tonight, weeks end no later!!!

I've totally rewritten the old paypal module, but this IPN stuff confuses the hell out of me. Sorry. I can help test and tweak it though if that's of any help.

 

Anyone know if you need SSL for this, or does it still use paypal's secure server?

Share this post


Link to post
Share on other sites
I've totally rewritten the old paypal module, but this IPN stuff confuses the hell out of me. Sorry. I can help test and tweak it though if that's of any help.

 

Anyone know if you need SSL for this, or does it still use paypal's secure server?

 

 

I think it still uses paypal's secure server...


My Contribution

Music Download Store Template

http://www.oscommerce.com/community/contributions,4275

Share this post


Link to post
Share on other sites
has anyone looked at the php developer's kit yet?

i had a look of the sdk. my first thought is we can have two modules in one package, one for direct payment, one for express checkout. It should be easy to implement the direct payment modue and here is what i got after 2 hour reading docs and cut/paste(DIRECT PAYMENT ONLY & INCOMPLETE & NOT TESTED):

 

<?php

/*

$Id: paypal_cc.php,v 0.1 2005/06/28 11:55:01 hq Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2005 osCommerce

 

Released under the GNU General Public License

*/

 

class paypal_cc {

var $code, $title, $description, $enabled;

 

// class constructor

function paypal_cc() {

global $order;

 

$this->code = 'paypal_cc';

$this->title = MODULE_PAYMENT_PAYPAL_CC_TEXT_TITLE;

$this->description = MODULE_PAYMENT_PAYPAL_CC_TEXT_DESCRIPTION;

$this->sort_order = MODULE_PAYMENT_PAYPAL_CC_SORT_ORDER;

$this->enabled = ((MODULE_PAYMENT_PAYPAL_CC_STATUS == 'True') ? true : false);

 

if ((int)MODULE_PAYMENT_PAYPAL_CC_ORDER_STATUS_ID > 0) {

$this->order_status = MODULE_PAYMENT_PAYPAL_CC_ORDER_STATUS_ID;

}

 

if (is_object($order)) $this->update_status();

}

 

// class methods

function update_status() {

global $order;

 

if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAYPAL_CC_ZONE > 0) ) {

$check_flag = false;

$check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PAYPAL_CC_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");

while ($check = tep_db_fetch_array($check_query)) {

if ($check['zone_id'] < 1) {

$check_flag = true;

break;

} elseif ($check['zone_id'] == $order->billing['zone_id']) {

$check_flag = true;

break;

}

}

 

if ($check_flag == false) {

$this->enabled = false;

}

}

}

 

function javascript_validation() {

$js = ' if (payment_value == "' . $this->code . '") {' . "\n" .

' var cc_firstname = document.checkout_payment.paypal_cc_firstname.value;' . "\n" .

' var cc_lastname = document.checkout_payment.paypal_cc_lastname.value;' . "\n" .

' var cc_number = document.checkout_payment.paypal_cc_number.value;' . "\n" .

' var cc_cvv2 = document.checkout_payment.paypal_cc_cvv2.value;' . "\n" .

' if (cc_firstname == "" || cc_firstname.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" .

' error_message = error_message + "' . MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_FIRSTNAME . '";' . "\n" .

' error = 1;' . "\n" .

' }' . "\n" .

' if (cc_lastname == "" || cc_lastname.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" .

' error_message = error_message + "' . MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_LASTNAME . '";' . "\n" .

' error = 1;' . "\n" .

' }' . "\n" .

' if (cc_number == "" || cc_number.length < ' . CC_NUMBER_MIN_LENGTH . ') {' . "\n" .

' error_message = error_message + "' . MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_NUMBER . '";' . "\n" .

' error = 1;' . "\n" .

' }' . "\n" .

' if (cc_cvv2 == "" || cc_cvv2.length > 4) {' . "\n" .

' error_message = error_message + "' . MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_CVV2 . '";' . "\n" .

' error = 1;' . "\n" .

' }' . "\n" .

' }' . "\n";

 

return $js;

}

 

function selection() {

global $order;

 

for ($i=1; $i<13; $i++) {

$expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));

}

 

$today = getdate();

for ($i=$today['year']; $i < $today['year']+10; $i++) {

$expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));

}

 

$selection = array('id' => $this->code,

'module' => $this->title,

'fields' => array(array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_FIRSTNAME,

'field' => tep_draw_input_field('paypal_cc_firstname', $order->billing['firstname'])),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_LASTNAME,

'field' => tep_draw_input_field('paypal_cc_lastname', $order->billing['lastname'])),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_NUMBER,

'field' => tep_draw_input_field('paypal_cc_number')),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_CVV2,

'field' => tep_draw_input_field('paypal_cc_cvv2')),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_EXPIRES,

'field' => tep_draw_pull_down_menu('paypal_cc_expires_month', $expires_month) . ' ' . tep_draw_pull_down_menu('paypal_cc_expires_year', $expires_year))));

 

return $selection;

}

 

function pre_confirmation_check() {

global $HTTP_POST_VARS;

 

include(DIR_WS_CLASSES . 'cc_validation.php');

 

$cc_validation = new cc_validation();

$result = $cc_validation->validate($HTTP_POST_VARS['paypal_cc_number'], $HTTP_POST_VARS['paypal_cc_expires_month'], $HTTP_POST_VARS['paypal_cc_expires_year']);

 

$error = '';

switch ($result) {

case -1:

$error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));

break;

case -2:

case -3:

case -4:

$error = TEXT_CCVAL_ERROR_INVALID_DATE;

break;

case false:

$error = TEXT_CCVAL_ERROR_INVALID_NUMBER;

break;

}

 

if ( ($result == false) || ($result < 1) ) {

$payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&cc_owner=' . urlencode($HTTP_POST_VARS['cc_owner']) . '&cc_expires_month=' . $HTTP_POST_VARS['cc_expires_month'] . '&cc_expires_year=' . $HTTP_POST_VARS['cc_expires_year'];

 

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));

}

 

$this->cc_card_type = $cc_validation->cc_type;

$this->cc_card_number = $cc_validation->cc_number;

$this->cc_expiry_month = $cc_validation->cc_expiry_month;

$this->cc_expiry_year = $cc_validation->cc_expiry_year;

}

 

function confirmation() {

global $HTTP_POST_VARS;

 

$confirmation = array('title' => $this->title . ': ' . $this->cc_card_type,

'fields' => array(array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_FIRSTNAME,

'field' => $HTTP_POST_VARS['paypal_cc_firstname']),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_LASTNAME,

'field' => $HTTP_POST_VARS['paypal_cc_lastname']),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_NUMBER,

'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_CVV2,

'field' => $HTTP_POST_VARS['paypal_cc_cvv2']),

array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_EXPIRES,

'field' => strftime('%B, %Y', mktime(0,0,0,$HTTP_POST_VARS['paypal_cc_expires_month'], 1, '20' . $HTTP_POST_VARS['paypal_cc_expires_year'])))));

 

return $confirmation;

}

 

function process_button() {

global $HTTP_POST_VARS;

$process_button_string = tep_draw_hidden_field('cc_firstname', $HTTP_POST_VARS['paypal_cc_firstname']) .

tep_draw_hidden_field('cc_lastname', $HTTP_POST_VARS['paypal_cc_lastname']) .

tep_draw_hidden_field('cc_expire_month', $this->cc_expires_month) .

tep_draw_hidden_field('cc_expire_year', $this->cc_expires_year) .

tep_draw_hidden_field('cc_type', $this->cc_card_type) .

tep_draw_hidden_field('cc_number', $this->cc_card_number) .

tep_draw_hidden_field('cc_cvv2', $this->cc_cvv2);

 

return $process_button_string;

}

 

function before_process() {

global $HTTP_POST_VARS, $order;

require_once (DIR_WS_INCLUDES . 'Services_PayPal/PayPal.php');

require_once (DIR_WS_INCLUDES . 'Services_PayPal/PayPal/Profile/Handler/Array.php');

require_once (DIR_WS_INCLUDES . 'Services_PayPal/PayPal/Profile/API.php');

 

// Settings.

if(MODULE_PAYMENT_PAYPAL_CC_GATEWAY_SERVER == 'Live') {

$certfile = DIR_FS_CATALOG. 'includes/Services_PayPal/PayPal/cert/live.paypal.com.pem';

} else {

$certfile = DIR_FS_CATALOG. 'includes/Services_PayPal/PayPal/cert/sandbox.paypal.com.pem';

}

 

$certpass = '';

$apiusername = MODULE_PAYMENT_PAYPAL_CC_USERNAME;

$apipassword = MODULE_PAYMENT_PAYPAL_CC_PASSWORD;

$subject = null;

$environment = MODULE_PAYMENT_PAYPAL_CC_GATEWAY_SERVER;

 

$handler =& ProfileHandler_Array::getInstance(array(

'username' => $apiusername,

'certificateFile' => $certfile,

'subject' => $subject,

'environment' => $environment));

 

$profile =& APIProfile::getInstance($apiusername, $handler);

$profile->setAPIPassword($apipassword);

 

$caller =& Services_PayPal::getCallerServices($profile);

 

if(Services_PayPal::isError($caller))

{

$payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode(MODULE_PAYMENT_PAYPAL_CC_TEXT_PROCESS_ERROR);

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));

}

 

$name =& Services_PayPal::getType('PersonNameType');

$name->setFirstName($HTTP_POST_VARS['cc_firstname']);

$name->setLastName($HTTP_POST_VARS['cc_lastname']);

 

$address =& Services_PayPal::getType('AddressType');

$address->setStreet1($order->billing['street_address']);

$address->setCityName($order->billing['city']);

$address->setStateOrProvince($order->billing['state']);

$address->setCountry($order->billing['country']);

$address->setPostalCode($order->billing['postcode']);

 

$payer =& Services_PayPal::getType('PayerInfoType');

$payer->setPayer($order->customer['email_address']);

$payer->setPayerID($order->customer['email_address']);

$payer->setPayerStatus('verified');

$payer->setPayerName($name);

$payer->setPayerCountry($order->billing['country']);

$payer->setAddress($address);

 

$cc =& Services_PayPal::getType('CreditCardDetailsType');

$cc->setCreditCardType($HTTP_POST_VARS['cc_type']);

$cc->setCreditCardNumber($HTTP_POST_VARS['cc_number']);

$cc->setExpMonth($HTTP_POST_VARS['cc_expire_month']);

$cc->setExpYear($HTTP_POST_VARS['cc_expire_year']);

$cc->setCVV2($HTTP_POST_VARS['cc_cvv2']);

$cc->setCardOwner($payer);

 

$amount =& Services_PayPal::getType('BasicAmountType');

$amount->setval(number_format($order->info['total']));

$amount->setattr('currencyID', $order->info['currency']);

 

$pdt =& Services_PayPal::getType('PaymentDetailsType');

$pdt->setOrderTotal($amount);

 

$details =& Services_PayPal::getType('DoDirectPaymentRequestDetailsType');

$details->setPaymentAction('Sale');

$details->setPaymentDetails($pdt);

$details->setCreditCard($cc);

$details->setIPAddress($HTTP_REMOTE_ADDR);

$details->setMerchantSessionId(session_id());

 

$ddp =& Services_PayPal::getType('DoDirectPaymentRequestType');

$ddp->setDoDirectPaymentRequestDetails($details);

 

$response = $caller->DoDirectPayment($ddp);

$errors = $response->getErrors();

 

if($errors) {

// error handling

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(MODULE_PAYMENT_PAYPAL_CC_TEXT_DECLINED_MESSAGE), 'SSL', true, false));

}

}

 

function after_process() {

return false;

}

 

function get_error() {

global $HTTP_GET_VARS;

 

$error = array('title' => MODULE_PAYMENT_PAYPAL_CC_TEXT_ERROR,

'error' => stripslashes(urldecode($HTTP_GET_VARS['error'])));

 

return $error;

}

 

function check() {

if (!isset($this->_check)) {

$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PAYPAL_CC_STATUS'");

$this->_check = tep_db_num_rows($check_query);

}

return $this->_check;

}

 

function install() {

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable PayPal Direct Payment Module', 'MODULE_PAYMENT_PAYPAL_CC_STATUS', 'True', 'Do you want to accept credit card payments through PayPal Direct Payment?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

//tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Split Credit Card E-Mail Address', 'MODULE_PAYMENT_PAYPAL_CC_EMAIL', '', 'If an e-mail address is entered, the middle digits of the credit card number will be sent to the e-mail address (the outside digits are stored in the database with the middle digits censored)', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_PAYPAL_CC_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0' , now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_PAYPAL_CC_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_PAYPAL_CC_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Gateway Server', 'MODULE_PAYMENT_PAYPAL_CC_GATEWAY_SERVER', 'Testing', 'Use the testing (sandbox) or live gateway server for transactions?', '6', '6', 'tep_cfg_select_option(array(\'Sandbox\',\'Live\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Gateway Server', 'MODULE_PAYMENT_PAYPAL_CC_USERNAME', 'PayPal Username', 'Enter your PayPal username', '6', '6', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Gateway Server', 'MODULE_PAYMENT_PAYPAL_CC_PASSWORD', 'PayPal Password', 'Enter your PayPal password', '6', '6', now())");

}

 

function remove() {

tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");

}

 

function keys() {

return array('MODULE_PAYMENT_PAYPAL_CC_STATUS', 'MODULE_PAYMENT_PAYPAL_CC_ZONE', 'MODULE_PAYMENT_PAYPAL_CC_ORDER_STATUS_ID', 'MODULE_PAYMENT_PAYPAL_CC_SORT_ORDER', 'MODULE_PAYMENT_PAYPAL_CC_GATEWAY_SERVER', 'MODULE_PAYMENT_PAYPAL_CC_USERNAME', 'MODULE_PAYMENT_PAYPAL_CC_PASSWORD');

}

}

?>

 

<?php

/*

$Id: paypal_cc.php,v 0.1 2005/06/28 11:55:01 hq Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2005 osCommerce

 

Released under the GNU General Public License

*/

 

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_TITLE', 'Credit Card');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_DESCRIPTION', 'Credit Card Test Info:<br><br>CC#: 4111111111111111<br>Expiry: Any');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_TYPE', 'Credit Card Type:');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_FIRSTNAME', 'First Name:');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_LASTNAME', 'Last Name:');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_NUMBER', 'Credit Card Number:');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_CVV2', 'Card Verification Value:');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_CREDIT_CARD_EXPIRES', 'Credit Card Expiry Date:');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_FIRSTNAME', '* The owner\'s first name of the credit card must be at least ' . CC_OWNER_MIN_LENGTH . ' characters.\n');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_LASTNAME', '* The owner\'s last name of the credit card must be at least ' . CC_OWNER_MIN_LENGTH . ' characters.\n');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_NUMBER', '* The credit card number must be at least ' . CC_NUMBER_MIN_LENGTH . ' characters.\n');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_JS_CC_CVV2', '* The card verification value cannot be more than 4 characters.\n');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_ERROR', 'Credit Card Error!');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_PROCESS_ERROR', 'There has been an error processing your credit card. Please try again.');

define('MODULE_PAYMENT_PAYPAL_CC_TEXT_DECLINED_MESSAGE', 'Your credit card was declined. Please try another card or contact your bank for more info.');

?>

Share this post


Link to post
Share on other sites

Awesome guys, just wanted to chime in and say good luck :) I made a post on here the day this was announced waiting for somebody to develop a contribution :)

Share this post


Link to post
Share on other sites

strike1150, please tell me that checkout_process will create the orders and not the payment module. The only IPN contribution that I sort of got working does all the order creation work and it means a lot of work for me to add my custom mods to it rather than checkout_process.

 

I wonder if that actually makes sense??? :blink:

Share this post


Link to post
Share on other sites
strike1150, please tell me that checkout_process will create the orders and not the payment module. The only IPN contribution that I sort of got working does all the order creation work and it means a lot of work for me to add my custom mods to it rather than checkout_process.

 

I wonder if that actually makes sense???  :blink:

 

 

Makes total sence, good thing you mentioned it... i had over looked the aspect behind creating orders on checkout_process....

 

strike1150... still around?

Share this post


Link to post
Share on other sites
Makes total sence, good thing you mentioned it... i had over looked the aspect behind creating orders on checkout_process....

 

strike1150... still around?

yes checkout_process will create the orders. the current ipn implementation looks strange to me. i know it works 'cause i installed it for a friend recently. why we need the ipn modules to create the orders? i'm new to osc. is it because we need to have the orders in our database before ipn calls back? i'm pretty sure that's the reason. tell me if i'm wrong. the good thing is we don't need ipn any more after switching to wpp.

Share this post


Link to post
Share on other sites
yes checkout_process will create the orders. the current ipn implementation looks strange to me. i know it works 'cause i installed it for a friend recently. why we need the ipn modules to create the orders? i'm new to osc. is it because we need to have the orders in our database before ipn calls back? i'm pretty sure that's the reason. tell me if i'm wrong. the good thing is we don't need ipn any more after switching to wpp.

 

According to the documention, the oscommerce team made the payment module create the order because they wanted to keep it as simple as possible to install and less invasive. It would have been better to create an include file that both the process and payment module could share with a switch to determine actual parameters. But hey, that's just me.

 

And yes, it is apparently to create the order as pending before it takes the customer to paypal.

 

Cheers.

 

 

P.S. It would be nice if this forum software would send me reply notifications. It did the other day, but suddenly stopped. I wonder if it's being counted as spam by my server.

Share this post


Link to post
Share on other sites
hey guys... just a reminder....

make it compatible with those of us selling downloaded goods....

 

just my two cents....

Since it is not using IPN, I don't think downloads will be an issue. If I'm not mistaken, it should work like a regular credit card module - a yes or no response. Someone correct me if I am wrong.

Share this post


Link to post
Share on other sites

Sweet hopefully someone can figure out this contrib. i cant wait to start using this service.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×