簡體   English   中英

PayPal In-Context Checkout單擊事件

[英]PayPal In-Context Checkout Click Event

我正在使用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...');
    }
});

這在谷歌瀏覽器上工作正常,但是在Firefox和IE上,彈出窗口打開,PayPal加載gif只掛在那里,窗口標題為:空白。 有誰知道發生了什么?

我認為您不會真正使用PayPal-In-Context-Workflow。 使用此腳本,表單將被提交,您將到達“/lib/paypal/paypal_ec_redirect.php”。 對於In-Context-Workflow,您首先設置付款並獲取令牌。 然后在JS中必須以“paypal.checkout.startFlow(token)”開始流程。 這是我使用的代碼示例。 “event.preventDefault();” 不執行表單url,ajax是獲取令牌。

        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'],
        });
    }

為了我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM