How do you simulate, test and handle errors for payment buttons?
Besides the onAuthorize, is there something link an onError. Cant see anything on how to handle these things on the client side implementation.
We don't currently have a way to automatically simulate errors, but you can test manually by running the following in the dev console in the popup window:
window.xchild.error(new Error('something went wrong'))
The recommendation for handling the error is to log the error, report the issue here, and either:
The paypal popup window will be automatically cleaned up, but the button will remain on the page.
Hi I try use client js sdk for express checkout and not found info about error handling too.
I tried:
return actions.payment.execute().then(function (payment) {
window.alert('Payment Complete!');
}).catch(function (error) {
console.debug(error);
});
},
onError: function(data, actions) {
// logging error, showing error popup and reloading page
console.debug(data);
},
And I get stack trace with error message

How I can get error token or error message in readable format?
For this request I want get something like this DUPLICATE_TRANSACTION or error message in my locale.

@bluepnume Can you help me understand how I can get error message?
Error: Payment could not be executed
buildActions/actions<.payment.execute</<@https://www.sandbox.paypal.com/webapps/hermes/static/js/button.js?build=2.0.2_20170914193329136.unx:4163:35
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8075:46
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.reject@https://www.paypalobjects.com/api/checkout.js:8050:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8082:83
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.reject@https://www.paypalobjects.com/api/checkout.js:8050:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8071:37
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.reject@https://www.paypalobjects.com/api/checkout.js:8050:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8082:83
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8082:51
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8088:34
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/</<@https://www.paypalobjects.com/api/checkout.js:8085:33
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8065:54
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8088:34
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/</<@https://www.paypalobjects.com/api/checkout.js:8085:33
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8065:54
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8088:34
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/</<@https://www.paypalobjects.com/api/checkout.js:8085:33
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8065:54
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8088:34
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8088:34
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.reject@https://www.paypalobjects.com/api/checkout.js:8050:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8082:83
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.reject@https://www.paypalobjects.com/api/checkout.js:8050:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8067:33
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8088:34
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch/<@https://www.paypalobjects.com/api/checkout.js:8088:34
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.dispatch@https://www.paypalobjects.com/api/checkout.js:8062:26
./node_modules/zalgo-promise/src/promise.js/ZalgoPromise</ZalgoPromise.prototype.resolve@https://www.paypalobjects.com/api/checkout.js:8034:17
ZalgoPromise/<@https://www.paypalobjects.com/api/checkout.js:8011:42
request/</<@https://www.sandbox.paypal.com/webapps/hermes/static/js/button.js?build=2.0.2_20170914193329136.unx:3046:28
@verysimplenick -- getting granular errors for execute for the client-side integration is a work in progress on our side. Issue is open here: https://github.com/paypal/paypal-checkout/issues/479
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Most helpful comment
@verysimplenick -- getting granular errors for
executefor the client-side integration is a work in progress on our side. Issue is open here: https://github.com/paypal/paypal-checkout/issues/479