【发布时间】:2018-10-16 14:02:10
【问题描述】:
我对使用 PayPal react bindings 的结帐组件有一个误解。
我的支付功能:
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
知道如何处理这个错误吗?
【问题讨论】:
-
你能分享你的
onAuthorize函数吗? -
@Scott 完成。但我认为在调用 onAuthorize 之前会引发此错误。
标签: reactjs paypal error-handling