Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

PayPal WPP Direct Payments & Express Checkout Support


dynamoeffects

Recommended Posts

Ah, Brian, I removed PWA support in 'my' version, for keeping it as simple as possible.

Ok, I see, when I have some more time maybe I have a look further into this.

 

Right now I would only appreciate some help as to add my paypal fee to the checkout total.

 

It is not so easy anymore...

 

$paypalfee = 1.02;

$su_total = round($order->info['subtotal'] * $currencies->get_value($currency_id), $decimal);

$sh_total = round($order->info['shipping_cost'] * $currencies->get_value($currency_id), $decimal);

$tx_total = round($order->info['tax'] * $currencies->get_value($currency_id), $decimal);

$ha_toatl = round((($order->info['total'] ) - $order->info['subtotal'] - $order->info['shipping_cost'] - $order->info['tax']) * $currencies->get_value($currency_id), $decimal);

 

$order_info['PAYPAL_ORDER_TOTAL'] = $su_total + $sh_total + $tx_total + $ha_toatl;

 

change to

$order_info['PAYPAL_ORDER_TOTAL'] = round(($su_total + $sh_total + $tx_total + $ha_toatl ) * $paypalfee * $currencies->get_value($currency_id), $decimal);

 

but how about the check paypal does?

Link to comment
Share on other sites

I found the error after installed the latest v0.9.1 module:

------------------------------------

Invalid Data (10525)

This transaction cannot be processed. The amount to be charged is zero.

------------------------------------

 

 

I should mention that I read post # 2229

http://www.oscommerce.com/forums/index.php?sho...;hl=10525

pogogirl had exact same problem. On the next post # 2230 he found the solution but the url in there is in correct.

Link to comment
Share on other sites

I found the error after installed the latest v0.9.1 module:

------------------------------------

Invalid Data (10525)

This transaction cannot be processed. The amount to be charged is zero.

------------------------------------

I should mention that I read post # 2229

http://www.oscommerce.com/forums/index.php?sho...;hl=10525

pogogirl had exact same problem. On the next post # 2230 he found the solution but the url in there is in correct.

 

In the 0.9.1 package, you will find a version of checkout_process.php that implements a fix for a logical error in osC's flow. Specifically, the default behaviour is to call the payment module's before_process() function before processing the order total modules. For offline processing and payment solutions that involve exiting the store to provide payment details, it doesn't really matter. For this module, the order total processing needs to be done before calling before_process(). If you have modified your checkout_process.php, find the block of code in the version provided with this module that is set off in comments "PayPal_WPP modification start/end" and copy it into your checkout_process.php. If you are using the default checkout_process.php, you can simply copy the version provided with this module to your server. This fixes most of the "order total is zero" type errors. Note that this is part of Step 4 of the installation instructions for this module.

 

--Glen

Link to comment
Share on other sites

Wayfinder,

I have encountered the same problem, determined its origin, and suggested a possible fix to Brian. The problem occurs when an existing customer uses Express Checkout. The WPP module winds up setting the address to the default shipping address on the account.

 

I know that Brian is busy with his regular work and doesn't have a lot of time to put into this module. I should have a block of time late this week to implement my idea and will submit it to Brian for review and inclusion in an update.

 

--Glen

Thanks for your attention! I tested again with a all new account and still get problem. I think the problem is not only for existing customer but it's for all customer. Hopefully you can have a solution soon. It's a great contribution module it's really a pity if it can't have this bug fixed.

Link to comment
Share on other sites

Wayfinder,

I have encountered the same problem, determined its origin, and suggested a possible fix to Brian. The problem occurs when an existing customer uses Express Checkout. The WPP module winds up setting the address to the default shipping address on the account.

 

I know that Brian is busy with his regular work and doesn't have a lot of time to put into this module. I should have a block of time late this week to implement my idea and will submit it to Brian for review and inclusion in an update.

 

--Glen

Glen, I think I fixed the problem, here is my solution, maybe it will work for you:

 

1. Modify the database:

 

ALTER TABLE `orders` CHANGE `delivery_state` `delivery_state` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL

 

DEFAULT ''

 

ALTER TABLE `address_book` CHANGE `entry_state` `entry_state` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL

 

DEFAULT ''

 

ALTER TABLE `orders` CHANGE `customers_state` `customers_state` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL

 

DEFAULT ''

 

ALTER TABLE `address_book` CHANGE `address_book_id` `address_book_id` INT( 11 ) NOT NULL AUTO_INCREMENT

 

 

2. modify the php file: /catalog/includes/modules/payment/paypal_wpp.php

 

replace:

 

$states_query = tep_db_query("SELECT zone_id FROM ".TABLE_ZONES." WHERE zone_code = '".$_SESSION['paypal_ec_payer_info']

 

['ship_state']."' AND zone_country_id = '".$country_id."' LIMIT 1");

 

 

with:

 

$states_query = tep_db_query("SELECT zone_id FROM " . TABLE_ZONES . "

WHERE zone_country_id = '".(int)$country_id."'

AND ( zone_code = '".$_SESSION['paypal_ec_payer_info']['ship_state']."'

OR zone_name = '".$_SESSION['paypal_ec_payer_info']['ship_state']."' ) LIMIT 1");

 

 

I am in Canada and seems now it's working. By the way you will probably need manually delete all previous customer / order / address book with NULL entry_state or delivery_state.

 

Hope it will work for you.

Link to comment
Share on other sites

Glen, I think I fixed the problem, here is my solution, maybe it will work for you:

 

1. Modify the database:

 

ALTER TABLE `orders` CHANGE `delivery_state` `delivery_state` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL

 

DEFAULT ''

 

ALTER TABLE `address_book` CHANGE `entry_state` `entry_state` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL

 

DEFAULT ''

 

ALTER TABLE `orders` CHANGE `customers_state` `customers_state` VARCHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL

 

DEFAULT ''

 

ALTER TABLE `address_book` CHANGE `address_book_id` `address_book_id` INT( 11 ) NOT NULL AUTO_INCREMENT

2. modify the php file: /catalog/includes/modules/payment/paypal_wpp.php

 

replace:

 

$states_query = tep_db_query("SELECT zone_id FROM ".TABLE_ZONES." WHERE zone_code = '".$_SESSION['paypal_ec_payer_info']

 

['ship_state']."' AND zone_country_id = '".$country_id."' LIMIT 1");

with:

 

$states_query = tep_db_query("SELECT zone_id FROM " . TABLE_ZONES . "

WHERE zone_country_id = '".(int)$country_id."'

AND ( zone_code = '".$_SESSION['paypal_ec_payer_info']['ship_state']."'

OR zone_name = '".$_SESSION['paypal_ec_payer_info']['ship_state']."' ) LIMIT 1");

I am in Canada and seems now it's working. By the way you will probably need manually delete all previous customer / order / address book with NULL entry_state or delivery_state.

 

Hope it will work for you.

 

Actually, the problem I need to solve is a different one, not related to taxes, though I figured that they have the same cause. I wrote the code that you modified; all it does is to pull a state code out of the zones table, so that PayPal gets a value that it expects. I use the country-state selector contribution, so that new customers must pick the country and state from a list, rather than use free-form entry. I also use the world zones contribution to get a big list of states/provinces/etc. Note that the installation of world zones will break all existing customer records, so it isn't a good idea to add this to a shop with existing customers, unless you are prepared to fix all the current records. (I'm still recovering from that mistake.)

 

--Glen

Link to comment
Share on other sites

Howdy everyone-- just had a quick question about a slightly weird bug I'm experiencing. This thing is nowhere near live, and I've got everything set up correctly but when I confirm a direct order with the paypal sandbox API, I get the following error message:

 

PayPal WPP installation incomplete! There should be XML files located in /home/tartang/public_html/storeincludes/wpp_xml/ !

(doDirectPayment.xml)

 

Which is really quite weird, because the files are there, but that error message is missing a forward slash in the path (should be store/includes/wpp_xml/). This just makes no sense (I think). So I guess my question is one of tracking down the file where that slash would be missing--I've used an older, different version of this module with no problem.

 

Thanks a ton.

 

The store is located at tartangolf.net/store, and it should be noted that SSL is disabled at the moment (hosting issue), but I don't think this would make a difference for running the sandbox API.

Link to comment
Share on other sites

hi everyone,

 

I was using PayPal Website Payments Pro (US/UK) by dynamoeffects v0.9 released 27feb 2007 (fresh Installation).

no trouble at all as great help file included . since then no problem in recieving payments except some confusion in solo mastero interface.

 

found new update Official PayPal Pro - UK - Updated 15 may 2007. tried to install , not a very helpfull installation file to guide how to upgrade from my previous version to new one.

I used file compare software to upgrade files. but stuck how to update database, as i am not very expert in writing sql commands.

after my try I got error in process.ec file and checkout.payment page started looking weird. It may be because Database was not properly installed.

 

At end My whole store and data backup saved me and website is now in its Previous real state.

 

I need advise and installation/ Upgrade instruction please, to upgrade from PayPal Website Payments Pro (US/UK) v0.9 to this lattest one Official PayPal Pro - UK - Updated 15 may 2007. ( if it is usefull)

 

I will be very gratefull for help and response.

 

Thanks and regards

 

zee

Link to comment
Share on other sites

@sirboxalot: In your configure.php script, DIR_WS_HTTP_CATALOG and DIR_WS_HTTPS_CATALOG both need to be "store/" and not "store".

 

@zeeshop: That version is a fork of this module, but is significantly different and not something you can upgrade to without removing the module with my name on it first.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

@sirboxalot: In your configure.php script, DIR_WS_HTTP_CATALOG and DIR_WS_HTTPS_CATALOG both need to be "store/" and not "store".

 

@zeeshop: That version is a fork of this module, but is significantly different and not something you can upgrade to without removing the module with my name on it first.

 

 

Thanks Dynamoeffects.

 

DO u recommend to upgrade my previous version with your name on it. if yes. any recommended step to removed previous version.

Can I just import database without doing anything with old one.

 

I am confused how in how to remove this and put new one on.

 

Thanks for help

 

Zee

Link to comment
Share on other sites

@sirboxalot: In your configure.php script, DIR_WS_HTTP_CATALOG and DIR_WS_HTTPS_CATALOG both need to be "store/" and not "store".

 

@zeeshop: That version is a fork of this module, but is significantly different and not something you can upgrade to without removing the module with my name on it first.

 

That makes total sense. Thanks for the help.

Link to comment
Share on other sites

@zeeshop: If you're a UK merchant, PayPal recommends that you use their version because it uses a different API than mine does, but my version is reportedly still working fine for UK merchants. Why are you wanting to upgrade?

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

@zeeshop: If you're a UK merchant, PayPal recommends that you use their version because it uses a different API than mine does, but my version is reportedly still working fine for UK merchants. Why are you wanting to upgrade?

 

 

Yes your version is working alright no problem at all/

Just wondering because I saw updates which make me think may be I should Upgrade...

 

 

Thanks for your Help..

Regards

 

zia

Link to comment
Share on other sites

Dynamoeffects: one more quick question on an error message from the wpp_diagnostics.php now that I've got my SSL cert up and running.. again, thanks in advance, this contribution is great and you've been a huge help.

 

Able to connect to PayPal through cURL? No

Error received: 35: error:14094418:SSL routines:func(148):reason(1048)

 

Everything else comes back good. Attempting to checkout through the sandbox also gives an error 35.

 

So the question is, is there something I can do with cURL on my end, or is this something I need to take to paypal?

Link to comment
Share on other sites

Is there a good reason that each customer can see the following in their order history :

 

Transaction ID: #####

Payment Type: PayPal Direct Payment

Payment Status: Completed

AVS Code: blah blah

CVV2 Code: blah blah

 

------------------

 

I had one customer who complained that he didn't want to "pay with Paypal" because it says "PayPal Direct Payment" like you see above. I had to advise him that PayPal was my credit card processor, so he really didn't make an official "paypal" payment....

 

SO, that lead me to wonder.... why show the above to the customer anyways? Shouldn't this be the type of information that only the store owner should see? Maybe someone can explain?

Link to comment
Share on other sites

I posted this elsewhere..but it looks like all the action is in this thread :-) I have a US Paypal Business Account, and I am using the paypal payment module for my store. Problem is..paypal is processing the order and receiving the money, but I have no idea what the customer ordered! Now I know I should upgrade or use some contribution. Can someone please tell me which one. (please be very specific ) and perhaps provide a link to the download. (or tell me where to find it) Thank you! :-)

Link to comment
Share on other sites

Hi Everyone.

 

I upgraded my paypal version with latest one available for uk use.

 

Now most of things are in order, when customer choosed to use google checkout from shopping card he reached to paypal website where after adding his paypal user name and password , when clicking review payment he returned back to my website.

 

But instead of SHIPPING METHOD selection page customer going straight to checkout_confirmation.php and the highest value from SHIPPING METHOD automatically adding in customer total.

 

Please advise me a fix/ code so customer instead of going to CHECKOUT CONFIRMATION page should go to CHECKOUT SHIPPING page for right selection of shipping price avaiable to product.

 

Thanks for help

 

Best regards

 

zia

Link to comment
Share on other sites

Dynamoeffects: one more quick question on an error message from the wpp_diagnostics.php now that I've got my SSL cert up and running.. again, thanks in advance, this contribution is great and you've been a huge help.

Everything else comes back good. Attempting to checkout through the sandbox also gives an error 35.

 

So the question is, is there something I can do with cURL on my end, or is this something I need to take to paypal?

 

After some investigation, this appears to be an error on Paypal's end that occurs when you use your real API cert/username/pass in sandbox mode, or when you use a sandbox API cert/username/pass in live mode.

Link to comment
Share on other sites

Is there a good reason that each customer can see the following in their order history :

 

Transaction ID: #####

Payment Type: PayPal Direct Payment

Payment Status: Completed

AVS Code: blah blah

CVV2 Code: blah blah

 

------------------

 

I had one customer who complained that he didn't want to "pay with Paypal" because it says "PayPal Direct Payment" like you see above. I had to advise him that PayPal was my credit card processor, so he really didn't make an official "paypal" payment....

 

SO, that lead me to wonder.... why show the above to the customer anyways? Shouldn't this be the type of information that only the store owner should see? Maybe someone can explain?

 

The reason for putting it into the order history is that there isn't anywhere else to put it. One thing that you can do is change the string displayed for Payment Type. It is hard-coded in paypal_wpp.php towards the bottom of the before_process() function.

 

Find this line:

$this->payment_type = 'PayPal Direct Payment';

 

Change it to:

$this->payment_type = 'Credit/Debit Card';

 

Or something similar.

 

--Glen

Link to comment
Share on other sites

I posted this elsewhere..but it looks like all the action is in this thread :-) I have a US Paypal Business Account, and I am using the paypal payment module for my store. Problem is..paypal is processing the order and receiving the money, but I have no idea what the customer ordered! Now I know I should upgrade or use some contribution. Can someone please tell me which one. (please be very specific ) and perhaps provide a link to the download. (or tell me where to find it) Thank you! :-)

 

You appear to be using the PayPal module that comes with the osC release. It isn't very good, and doesn't post the orders to your database unless the customer presses the button to return to your shop at the end of the transaction at PayPal. There are several hacks to fix this behavior, but you would be better off using a different module.

 

Search the payment module contributions for PayPal. If you are happy with sending your customers to PayPal for their credit card purchases, use the PayPal Express Checkout IPN module by AlexStudio or the osCommerce PayPal IPN module maintained by Terra.

 

If you want to accept credit cards directly from your shop, PayPal has a service called Website Payments Pro. This service costs $20/month and requires you to put Express Checkout buttons at the top of your checkout process. In this case, download and install the contribution listed in post #1 of this topic.

 

--Glen

Link to comment
Share on other sites

Hi, I've got everything installed properly but I'm getting this error:

 

error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca (Error No. 35)

 

Can somebody help me out? I don't have SSL installed on my website, is there a way to run this contribution without SSL?

Link to comment
Share on other sites

As for it just going to a blank page, check these things:

1) Is your certificate installed?

2) Is the absolute path in the module's admin to both pear and the certificate correct?

3) Did you raise the timeout in /catalog/pear/Services/...../HTTP.php?

 

Try the SOAP logging modification that PayPal Mike posted on the last page and see if there are any errors.

 

OK, I'm thinking these are dumb questions, but:

1. my site has an SSL cert, is this the same cert mentioned above?

2. Where is the module's admin? In the Module admin section of OSC there are no options for this, is this buried in a file somewhere?

3. Is this part of the mod or a PEAR services configuration?

 

Thanks.

Link to comment
Share on other sites

Can somebody help me out? I don't have SSL installed on my website, is there a way to run this contribution without SSL?

 

I'm not sure, but it's not a good idea to collect credit card numbers without SSL and you would certainly be violating your PayPal agreement. Check with your host. They may have a shared SSL certificate for the server that you can use with the right URL. Or you can by one for $20 at GoDaddy.

Link to comment
Share on other sites

@georgecvsc: PayPal's official version is a fork of 0.7.3 found in the contributions section on this site.

 

@phi148: If you want to hide that information altogether, you need to edit your order history page to not display order comments.

 

@zeeshop: I know very little about PayPal's official version as it's deviated quite a bit from 0.7.3. Support questions regarding their version should be directed to PayPal.

 

@wizard907: No.

 

@Diskology: 1) No, the API cert is something you download from inside your account at PayPal. 2) Admin -> Modules -> Payment -> PayPal Direct Payments 3) This module no longer uses PEAR modules, so that information is outdated.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...