首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PayPal上下文中签出单击事件

PayPal上下文中签出单击事件
EN

Stack Overflow用户
提问于 2016-08-16 18:57:24
回答 1查看 1.5K关注 0票数 1

我正在使用PayPal in-context express结账。这是我目前所拥有的:

代码语言:javascript
复制
paypal.checkout.setup("my_app.domain.co.uk", {
    locale: 'en_GB',
    environment: 'production',
    button: 'PayPalSubmit'
});

和HTML:

代码语言:javascript
复制
<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弹出窗口打开。我已经尝试过了:

代码语言:javascript
复制
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...');
    }
});

这在谷歌浏览器上运行得很好,但是在火狐和IE上,弹出窗口打开了,PayPal加载gif只是挂在那里,窗口的标题大约是:空白。有人知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-30 00:44:49

我不认为你真的在使用PayPal-In-Context-Workflow。有了这个脚本,表单就提交了,您就会看到"/lib/paypal/paypal_ec_redirect.php“。对于In-Context-Workflow,您首先设置付款并获取令牌。然后在JS中必须以"paypal.checkout.startFlow(token)“开始流程。下面是我使用的代码示例。"event.preventDefault();“不执行表单url,ajax将获取令牌。

代码语言:javascript
复制
        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'],
        });
    }

对我来说

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38973091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档