【问题标题】:PayPal In-Context Checkout Click EventPayPal In-Context Checkout 点击事件
【发布时间】:2016-12-22 17:19:32
【问题描述】:

我正在使用 PayPal 上下文快速结帐。这是我目前拥有的:

paypal.checkout.setup("my_app.domain.co.uk", {
    locale: 'en_GB',
    environment: 'production',
    button: 'PayPalSubmit'
});

还有 HTML:

<form id="PayPalForm" action="/lib/paypal/paypal_ec_redirect.php" method="POST">
    <input type="hidden" name="currencyCodeType" value="GBP" />
    <input type="hidden" name="paymentType" value="Sale" />
    <input type="hidden" name="PAYMENTREQUEST_0_PAYMENTACTION" value="Sale" />
    <input type="hidden" name="L_PAYMENTREQUEST_0_NAME0" value="Test" />
    <input type="hidden" name="PAYMENTREQUEST_0_DESC" value="Test" />
    <input type="hidden" name="L_PAYMENTREQUEST_0_QTY0" value="1" />
    <input type="hidden" name="PAYMENTREQUEST_0_ITEMAMT" value="1" />
    <input type="hidden" name="PAYMENTREQUEST_0_AMT" value="1">
    <input type="hidden" name="NOSHIPPING" value="1">
    <button type="submit" id="PayPalSubmit" class="jfk-button-action">
        Pay with PayPal
    </button>
</form>
<script src="//www.paypalobjects.com/api/checkout.js" async></script>

这目前有效,但是我想添加一个回调以在用户单击支付按钮时更改某些内容,即当 PayPal 弹出窗口打开时。我试过这个:

paypal.checkout.setup("my_app.domain.co.uk", {
    locale: 'en_GB',
    environment: 'production',
    button: 'PayPalSubmit',
    click: function () {
        paypal.checkout.initXO();
        $('#popup').html('Processing your booking...');
    }
});

这在 Google Chrome 上运行良好,但在 Firefox 和 IE 上会打开弹出窗口,并且 PayPal 加载 gif 只是挂在那里,窗口标题为 about:blank。有谁知道怎么回事?

【问题讨论】:

    标签: javascript php jquery paypal express-checkout


    【解决方案1】:

    我认为您并没有真正使用 PayPal-In-Context-Workflow。 使用此脚本提交表单并到达“/lib/paypal/paypal_ec_redirect.php”。 对于 In-Context-Workflow,您首先设置付款并获取令牌。 然后在 JS 中必须使用“paypal.checkout.startFlow(token)”启动流程。 这是我使用的代码示例。 “event.preventDefault();”不执行表单url,ajax是为了获取token。

            window.paypalCheckoutReady = function () {
            //alert('paypalCheckoutReady');
            paypal.checkout.setup('@Model.PayPalMerchantId', {
                environment: '@Model.PayPalEnvironment',
                click: function (event) {
                    //alert('paypalCheckoutClick');
                    $('#checkout').attr("disabled", "disabled");
                    event.preventDefault();
                    paypal.checkout.initXO();
                    $.support.cor = true;
                    $.ajax({
                        url: '@Url.Action("Checkout","shop")',
                        data: $('#payment-form').serialize(),
                        type: 'POST',
                        async: false,
                        crossDomain: true,
                        success: function (token) {
                            //alert('checkout success: ' + token);
                            //var url = paypal.checkout.urlPrefix + token;
                            paypal.checkout.startFlow(token);
                        },
                        error: function (responseData, textStatus, errorThrown) {
                            //alert('checkout error: ' + textStatus);
                            paypal.checkout.closeFlow();
                        }
                    });
                },
                condition: function () {
                    var ispaypal = $('input[name=paymentmethod]:checked', '#payment-form').val() == 'paypal';
                    //alert(ispaypal);
                    return ispaypal;
                },
                button: ['checkout'],
            });
        }
    

    对我来说

    【讨论】:

      猜你喜欢
      • 2016-07-16
      • 2015-12-07
      • 2015-10-16
      • 2016-02-17
      • 2015-10-21
      • 1970-01-01
      • 2017-04-13
      • 2022-01-13
      • 2017-01-13
      相关资源
      最近更新 更多