Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Paypal Issue Could not verify the PayPal transaction


tmcca

Recommended Posts

In log it has:

PS Green -notify_validate[IPN]

mc_gross 	95.00
invoice 	7
protection_eligibility 	Ineligible
address_status 	confirmed
item_number1 	
payer_id 	KY92RQM839LEU
tax 	0.00
address_street 	some street
payment_date 	16:52:19 Sep 12, 2017 PDT
payment_status 	Pending
charset 	windows-1252
address_zip 	some zip
mc_shipping 	5.00
first_name 	test
address_country_code 	US
address_name 	testing tester
notify_version 	3.8
custom 	1
payer_status 	verified
business 	[email protected]
address_country 	United States
num_cart_items 	1
address_city 	some city
verify_sign 	AiPC9BjkCyDFQXbSkoZcgqH3hpacAjniMT2pyErY-l4u2QMeDpf1aVxj
payer_email 	*****Hidden
txn_id 	06Y78511R38287917
payment_type 	instant
last_name 	buyer
address_state 	NJ
item_name1 	Disciples: Sacred Lands
receiver_email 	[email protected]
quantity1 	1
pending_reason 	unilateral
txn_type 	cart
mc_gross_1 	95.00
mc_currency 	USD
residence_country 	US
test_ipn 	1
transaction_subject 	
payment_gross 	95.00
ipn_track_id 	5f0adb8fb79d1

 

 

Than I also have:

PS Red UNKNOWN and nothing in view

I am confused it looks like it's getting IPN but getting message in store when I click return to merchant is this maybe the problem?

Also nothing in balance

 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
Edited by tmcca
Link to comment
Share on other sites

  • 3 months later...

Suddenly I can't edit a post anymore....weird.

Further to the above message - I am using the Points and Rewards.  I cannot test a live transaction since Paypal decided to put my personal account through a security review because I was trying to order Christmas items on ebay - and there were 3 different currencies so they flagged me.  On a side note, they gave me a $10 "credit" to use - although it'll expire before they allow any transactions.

That aside....I did confirm with them my Business Account and Sandbox accounts are not affected by this.

I will post my checkout_process.php to this as well in case that is the issue.

Here's what happens:

1. add items to cart

2. checkout (paypal sandbox)

3. Paypal reports success

4. Paypal APP log shows transaction and IPN received (I DO NOT use nor have I setup IPN in either the sandbox or live paypal accounts)
--> PDT is configured and the return URL is set.  This appears to work properly and at least returns properly.

5. Status shows Paypal [Transaction] in orders - it is never confirmed.

6. Order confirmation email IS sent out.  Order in admin should show completion and does not (Admin->Orders->Orders)

7. Attempting to view transaction history in Paypal sandbox account: no activity

I am beyond confused and lost.

checkout_process.php

Edited by tornrawks
now i can edit????
Link to comment
Share on other sites

@tornrawks there's a time limit on editing a post - after a while you can't.

Order status Pending is what you normally get on an order that has been paid.

By default, they get created in a Preparing state, and changed to Pending on receipt of payment.

Paypal [Transactions] is a logging order history that shows you the IPN has worked.

Does the customer end up back at the beginning of the checkout process with the message that's the subject of the thread: "Could not verify the PayPal transaction. Please try again."?

If so, that is your actual issue. The return from pp is failing and not going to checkout_success.php

I have just hit the same thing setting up pp standard in sandbox mode for a client and will let you know what was causing it for them when I have sorted it out. It's likely a configuration thing.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

@tornrawks in my client's case they were using a sandbox merchant account that had an unconfirmed email address - I think it had been created via the 'fetch Sandbox credentials' dialogue from osc. The symptoms (customer being returned to the shopping cart with the error message) were the same. If you look at the Paypal log in admin, you'll see that there's a successful _notify-validate [IPN] and a failed _notify-synch

On the way to a solution, different details to the error logging were thrown up with different aspects to the resolution

  • without PDT set up at all, there was no response to the _notify-synch
  • with apparently all the proper settings in the sandbox merchant account and the matching token in osc, but with an unconfirmed email address in the merchant account, error response 4010. Sandbox accounts don't send actual emails and I was unable to find a way of confirming it since it was not associated with a developer account. If you sign in to developer.paypal.com and create a sandbox account there it doesn't need confirming.
  • through carelessness in going from one setup to the other I also made it throw a 4011 error when the PDT token in osc was different to the one in the paypal account

Suggested approach to configuring paypal sandbox account for testing:

  1. Log in to developer.paypal.com and create two accounts to use: a business account (to represent your shop) and a personal account (to use for placing test orders)
  2. Log into sandbox.paypal.com with your new business account. Go into the settings / My selling preferences / Website preferences / set Return to my website On, return url to http://domain.com/checkout_process.php, Payment Data Transfer to On, Encrypted payments off
  3. after saving these settings, go back in to get the PDT token
  4. fetch the sandbox credentials into osc using the new business account
  5. paste the PDT token into the configuration

NB when you go live you will need to replace the sandbox PDT token with one taken from the live paypal account

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

  • 6 months later...

I'm FAR from an expert, but I found a solution to this. It's not a real solution, but it seems to work for me. The transaction seems to work, it just doesn't redirect back to oscommerce successfully, oscommerce thinks there's an error when the transaction was successful. So, what I did was commented out some lines (I have OSCommerce 2.3.4 and paypal app 5.0.18) in ssl\catalog\modules\payment\paypal_standard.php:

Around lines 635 or so:

Quote

 

      if ( $result != 'VERIFIED' ) {
        $messageStack->add_session('header', $this->_app->getDef('module_ps_error_invalid_transaction'));

        tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
      }

 

Hope this helps someone else. Even though the result is not verified, everything seems to work. My order history shows "pending", and the user sees success, and the order shows up in history, and cart gets cleared.

    - Tony

Link to comment
Share on other sites

2 hours ago, thwang said:

I'm FAR from an expert, but I found a solution to this. It's not a real solution, but it seems to work for me. The transaction seems to work, it just doesn't redirect back to oscommerce successfully, oscommerce thinks there's an error when the transaction was successful. So, what I did was commented out some lines (I have OSCommerce 2.3.4 and paypal app 5.0.18) in ssl\catalog\modules\payment\paypal_standard.php:

Around lines 635 or so:

Hope this helps someone else. Even though the result is not verified, everything seems to work. My order history shows "pending", and the user sees success, and the order shows up in history, and cart gets cleared.

    - Tony

@thwang the point of this code is to validate that your customer has really paid for the item at paypal. If you comment it out, it leaves you open to being tricked.

Whilst it's more popular for hackers to try to hijack your paypal module and send your customers' payments to a different account, I have seen instances of faked payments trying to get you to send out orders that are not really paid for.

What you should do is sort out your settings so that the delivered code works properly. Unless of course you don't mind giving stuff out for free.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

  • 2 weeks later...

I had PayPal App v5.010 configured and working perfectly.  Then, like an idiot, I upgraded to v5.018.  Now it's broken as others have experienced.

Ran multiple tests in Sandbox and now I'm also getting the dreaded "Could not verify the PayPal transaction. Please try again."  It does not return to the correct checkout_process.php page, but goes back to the Shopping Cart and it shows the items still in it. 

The Sandbox account shows the payment coming through, but the osCom status updates look different.

Now I also don't get: (1) the order confirmation email or (2) the PayPal payment confirmation email. 

Looked at the log and I'm now seeing errors with _notify-synch which didn't happen previously.

This SUCKS!

Edited by ezfindit

Chris

Link to comment
Share on other sites

First question: are you absolutely sure this is related to upgrading the app and not to paypal enforcing TLS1.2 for the live system which began a couple of weeks ago?

Secondly, when you look at the errors in the paypal log, do you just have empty responses? This is usually TLS or SSL related.

If you have Verify SSL set to true in General Options, you will need to update the paypal certificate from the one that comes with the app

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

I ran the Test Connection and it passed!

cURL Version: 7.19.7
cURL SSL Version: NSS/3.27.1

Default Setting: Success
TLS v1.2: Success

Here's what's weird, I get this in the Log:
_notify-synch = fails!

Request
cmd     _notify-synch
GET osCsid     85cc4e1c8e7c7935a8cbcaa92c218e3e
GET amt     64.94
GET cc     USD
GET cm     2669
GET st     Completed
GET tx     52118739SU830502V
Response
FAIL     
Error     4020

BUT, the IPN processes!

_notify-validate [IPN]  = works!
Request
mc_gross     64.94
invoice     3791
protection_eligibility     Eligible
address_status     confirmed
item_number1     
payer_id     ENUFAAPFBX9LL
tax     0.00
address_street     333 Peach Rd
payment_date     14:38:51 Jul 17, 2018 PDT
payment_status     Completed
charset     windows-1252
address_zip     11106
mc_shipping     16.95
first_name     FirstTest
mc_fee     2.18
address_country_code     US
address_name     FirstTest LastTest
notify_version     3.9
custom     2669
payer_status     unverified
business    (I deleted it for security)
address_country     United States
num_cart_items     1
address_city     Astoria
verify_sign     (I deleted the key for security)
payer_email     (I deleted it for security)
mc_shipping1     16.95
txn_id     52118739SU830502V
payment_type     instant
last_name     LastTest
address_state     NY
item_name1     Freighter KOKI 200 with Containers UT11C - Kato 8042
receiver_email     (I deleted it for security)
payment_fee     2.18
quantity1     1
receiver_id     C9QYB9YRN6P3Y
txn_type     cart
mc_gross_1     64.94
mc_currency     USD
residence_country     US
test_ipn     1
receipt_id     3435-6574-7261-1249
transaction_subject     
payment_gross     64.94
ipn_track_id     2d17dc75a9861
Response
VERIFIED     

 

Edited by ezfindit

Chris

Link to comment
Share on other sites

Error 4020 is a PDT validation error with paypal. Most likely the token that's set in your osc store doesn't match the one in the paypal account in the environment you're running against (they are different in sandbox and live).

...if you are totally convinced that they match you can submit a ticket to paypal support and they'll tell you exactly what's causing the error code

Paypal MTS

Edited by BrockleyJohn
link to pp

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

I have the correct Sandbox credentials.  (FYI, there's no PDT in Sandbox, only NVP/SOAP Sandbox API Credentials.)

Will consider contacting PayPal, once I reset to previous version of PayPal App to reduce number of possible causes.

 

Edited by ezfindit

Chris

Link to comment
Share on other sites

I re-installed the PayPal App (v5.010) and reactivated Payments Standards.  Still getting the getting the "Could not verify the PayPal transaction. Please try again."  It does not return to the correct checkout_process.php page, but goes back to the Shopping Cart and it shows the items still in it.

Still getting the _notify-synch  Fail (420 code).

BUT,

The payment does go through. I'm also seeing 3x of these entries in my Test Order status now (before I was only seeing 1x entry):

Status:
Preparing [PayPal Standard]

Comments:
Transaction ID: 4DT93903CU839863K
Payer Status: unverified
Address Status: Confirmed
Payment Status: Completed
Payment Type: instant
Pending Reason: None

 

Edited by ezfindit

Chris

Link to comment
Share on other sites

36 minutes ago, ezfindit said:

(FYI, there's no PDT in Sandbox, only NVP/SOAP Sandbox API Credentials.)

 

oh yes there are! They are in exactly the same place as the live ones; you have to log into the paypal account on sandbox.paypal.com and go into website payment preferences under settings.

Makes it seem even more likely your settings are wrong...

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

33 minutes ago, ezfindit said:

FYI, Where do I enter a ticket to ask for PayPal help? The normal Support line?

click contact support at the bottom of the link I posted

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

pp invents the personal details when you create the account in sandbox

if you can't use it just create a new sandbox merchant account on developer.pp and use that instead - you can have as many as you want

Edited by BrockleyJohn

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

create a new business account in the developer.pp and use the same credentials (copied and pasted via notepad to ensure they are the same) to login sandbox.pp

this definitely works, I just did it

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

Oh, ok.  Thanks!  Can I reuse the same email address or use a different one?

I also came across this information on the PayPal site:

https://developer.paypal.com/docs/classic/lifecycle/sb_about-accounts/

You can create additional sandbox accounts on the developer site or directly on the sandbox site, https://www.sandbox.paypal.com

Edited by ezfindit

Chris

Link to comment
Share on other sites

Order cycle worked with the new Test Account and Test PDT token.  Returned back to site with empty Shopping Cart showing.  No errors in PayPal.

Thank you, Thank you!!!  You were right, it was not PayPal App v5.018 that was the issue.

However, now have other issues:

(1) Test Customer not getting the order notification email.

(2) Not getting the 2nd order notification email (SEND_EXTRA_ORDER_EMAILS_TO) to 2nd email account.

(3) Order status history shows "Preparing [PayPal Standard]", but customer is not notified (used to say Processing with green checkmark).

 

Edited by ezfindit

Chris

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...