代码之家  ›  专栏  ›  技术社区  ›  Anton Gorshenin

贝宝错误处理。找不到message postrobot\u方法的post message ack的处理程序

  •  0
  • Anton Gorshenin  · 技术社区  · 6 年前

    我对使用贝宝有一个误解 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);
                }
            });
        };
    

    和按钮组件:

            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
    

    你知道如何处理这个错误吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   ランス    6 年前

    没有处理程序意味着在paypal签出脚本完全加载之前呈现paypal按钮。