I am running a Shopsystem wich uses the PayPal Cart for the checkout process. There are two identical Setups, one talks to the sandbox, the other talks to the live API. The interesting thing is that the sandox environment does its job correctly when the payment is either completed or aborted (Takes me to the correct destination). On the production environment the "Return to merchant" button always takes me back to the "payment aborted" url. I observed this exact problem in the sanbox a week ago but this problem disappeared. In the production environment, an aborted payment will transfer to cancel_return (OK). A successful payment also transfers to cancel_return instead of return (NOT OK). The transaction was successful and Paypal does send an IPN message about half a minute later to the correct url (OK). I am using these URLs and Payloads: Sandbox: https://www.sandbox.paypal.com/cgi-bin/webscr Live: https://www.paypal.com/cgi-bin/webscr I have anonymised the payload data due to the customers privacy. An example sandbox payload is: business: payment-receiver@address
test_ipn: 1
custom: ShoppingCartId
notify_url: https://notify-ipn-url
return: https://successful-payment-url
cancel_return: https://canceled-payment-url
cmd: _cart
upload: 1
currency_code: EUR
invoice: Invoice-Number
handling_cart: 0.00
item_name_1: ArticleName
quantity_1: 1
amount_1: 12.34
mc_gross: 12.34
first_name: Jon
last_name: Doe
email: customer@email-address and the production payload on the other hand: business: payment-receiver@address
test_ipn: 0
custom: ShoppingCartId
notify_url: https://notify-ipn-url
return: https://successful-payment-url
cancel_return: https://canceled-payment-url
cmd: _cart
upload: 1
currency_code: EUR
invoice: Invoice-Number
handling_cart: 0.00
item_name_1: ArticleName
quantity_1: 1
amount_1: 12.34
mc_gross: 12.34
first_name: Jon
last_name: Doe
email: customer@email-address Some words to the checkout process: Fill cart Select Payment (eg. PayPal) Press buy button (this is not a PayPal buy button, just a regular formular that sends data to my backend) Create an order item and redirects the customer to the paypal cart website. The payload is transported via the query string (urlencoded). A full URL would be: https://www.sandbox.paypal.com/cgi-bin/webscr?business=payment-receiver%40address&test_ipn=1&custom=ShoppingCartId¬ify_url=https%3A%2F%2Fnotify-ipn-url&return=https%3A%2F%2Fsuccessful-payment-url&cancel_return=https%3A%2F%2Fcanceled-payment-url&cmd=_cart&upload=1¤cy_code=EUR&invoice=Invoice-Number&handling_cart=0.00&item_name_1=ArticleName&quantity_1=1&amount_1=12.34&mc_gross=12.34&first_name=Jon&last_name=Doe&email=customer%40email-address I have already read these questions, but they do not provide a solution for my problem: https://www.paypal-community.com/t5/Sandbox-Environment/Every-payment-returning-to-cancel-URL-and-PAYMENT-ALREADY-DONE/td-p/2877765 https://www.paypal-community.com/t5/About-Payments/Return-to-my-website-after-transaction/td-p/1416853 Does any one of you have an idea why there is a different user experiance between sandbox and production? Thanks in advance for any suggestion.
... View more