У меня неправильное представление об использовании PayPal Реактивные привязки компонента оформления заказа.
Моя функция оплаты:
let payment = () => {
return new paypal.Promise(async (resolve, reject) => {
await appStore.payment.paypalCreatePayments();
if (!appStore.payment.paymentsError && appStore.payment.paypalToken.payment.id) {
resolve(appStore.payment.paypalToken.payment.id);
} else {
reject(appStore.payment.paymentsError);
alert('Payment failure! error:', appStore.payment.paymentsError);
}
});
};
и компонент Button:
PayPalButton = paypal.Button.driver('react', { React, ReactDOM });
<PayPalButton
client={client}
payment={payment}
commit={true}
env='sandbox'
onAuthorize={onAuthorize}
onCancel={onCancel}
onError={onError}
/>;
Функция onAuthorize:
onAuthorize = async (data, actions) => {
await appStore.payment.paypalExecutePayments({
paymentID: data.paymentID,
payerID: data.payerID,
keys: appStore.payment.paypalToken.keys
});
actions.close();
if (!appStore.payment.paymentsError) {
this.props.paymentSuccess();
} else {
this.props.paymentFailure(appStore.payment.paymentsError);
}
};
И все работает нормально, когда все идет хорошо. Но когда я получаю сообщение об ошибке со стороны сервера (например, 404 или 500), Paypal выдает следующее сообщение об ошибке:
Uncaught Error: No handler found for post message ack for message: postrobot_method from https://1b375a11.ngrok.io in https://www.sandbox.paypal.com/webapps/hermes/button
Есть идеи, как можно обработать эту ошибку?