function errorCall-6ren">
gpt4 book ai didi

javascript - 万事达卡付款集成如何在完成付款后重定向到链接

转载 作者:行者123 更新时间:2023-11-28 03:37:41 24 4
gpt4 key购买 nike

付款完成后我需要重定向到某个网址

我使用了文档中提供的代码

<script src="https://ap-gateway.mastercard.com/checkout/version/52/checkout.js"
data-error="errorCallback"
data-cancel="cancelCallback"
data-complete="completeCallback"
data-afterRedirect="restorePageState"
return_url="{{url('confirm_is_paid/'.$Recipt->id.'/'.$Recipt->security_code)}}"
>
</script>

<script type="text/javascript">
function errorCallback(error) {
console.log(JSON.stringify(error));
}
function cancelCallback() {
console.log('Payment cancelled');
}

Checkout.configure({
merchant: 'my_merchant_id',
order: {
amount: function() {
//Dynamic calculation of amount
return {{$Recipt->final_price}};
},
currency: 'EGP',
description: 'Ordered goods',
id: Math.random()
},
interaction: {
operation: 'PURCHASE', // set this field to 'PURCHASE' for Hosted Checkout to perform a Pay Operation. , AUTHORIZE
merchant: {
name: 'AAIB TEST',
address: {
line1: '200 Sample St',
line2: '1234 Example Town'
}
} }
});

function restorePageState(data)
{
window.location.replace("{{url('confirm_is_paid/'.$Recipt->id.'/'.$Recipt->security_code)}}");
}

function completeCallback(resultIndicator, sessionVersion) {
window.location.replace("{{url('confirm_is_paid/'.$Recipt->id.'/'.$Recipt->security_code)}}");
}

Checkout.showPaymentPage();

</script>

一切正常,只是付款完成后无法重定向那么我该怎么做才能使其在付款完成后重定向到某个网址呢?

最佳答案

以下内容有效,并已针对 MPGS 版本 56 至 58 进行了测试

希望我的回答能让您满意。

不幸的是,您提到的问题今天仍然面临,而且奇怪的是 MPGS 团队仍然没有解决它。

首先,我想指出 MPGS 文档中的以下内容:

Requesting a Hosted Checkout interaction is a simple process:

Request a checkout session using the Create Checkout Session operation. The request should include payment and interaction data, as well as completion instructions. A sample curl snippet for the Create Checkout Session operation is shown below.

curl https://ap-gateway.mastercard.com/api/nvp/version/57 \
-d "apiOperation=CREATE_CHECKOUT_SESSION" \
-d "apiPassword=$PWD" \
-d "apiUsername=merchant.<your_merchant_id>" \
-d "merchant=<your_merchant_id>" \
-d "interaction.operation=AUTHORIZE" \
-d "order.id=<unique_order_id>" \
-d "order.amount=100.00" \
-d "order.currency=USD"

这将返回一个 session.id,您应该将其包含在 Checkout.configure javascript 函数中,但当前示例代码中缺少该函数。

Checkout.configure() 中的标签缺少参数:

 session: { 
id: '<your_create_checkout_session_ID>'
},

现在深入挖掘并找到答案。在 MPGS 文档的每个部分中,他们建议使用 data-complete="completeCallback"data-complete="http://[您的域名]/receiptPage"completeCallback 对于我们的实现来说不够好,因为我们使用 Checkout.showPaymentPage(); -> MPGS 也没有很好地记录它,并且 data-completereturn-url url 不起作用,因为我们将到达付款页面,而永远不会从 MPGS 的收据页面重定向到我们的服务器。

深入研究文档后,我们注意到 中的请求参数 interaction.cancelUrl 以及更重要的 interaction.returnUrl创建结账 session 文档。

来自 MPGS Create Checkout Session API 文档。

interaction.returnUrl  URI
The URL to which you want to return the payer after completing the payment attempt.
interaction.cancelUrl  URI
The URL to which you want to redirect the payer's browser if they cancel their payment.

您会注意到上面的功能与data-completedata-cancel类似

终于解决了

对于Checkout.showPaymentPage();,您必须在初始请求 session 请求中传递这些参数

curl https://ap-gateway.mastercard.com/api/nvp/version/57 \
-d "apiOperation=CREATE_CHECKOUT_SESSION" \
-d "apiPassword=$PWD" \
-d "apiUsername=merchant.<your_merchant_id>" \
-d "merchant=<your_merchant_id>" \
-d "interaction.operation=AUTHORIZE" \
-d "order.id=<unique_order_id>" \
-d "order.amount=100.00" \
-d "order.currency=USD"

-d "interaction.returnUrl=<your_returnUrl or data-complete url>"
-d "interaction.cancelUrl<your_cancel_url> or data-cancel url>"

当您想要重定向回您的网站时,添加额外参数可以解决重定向问题。您将在获取付款结果

下找到以下内容
To return the payer to your shop site, you must either:

provide interaction.returnUrl in the Create Checkout Session operation, OR
define the complete callback in the Hosted Checkout request. See Basic Callbacks.

这应该被重构为说应该在 Checkout.showPaymentPage() 中使用 interaction.returnUrl ,并且应该在Checkout.showLightbox()

我希望这对新访问者有所帮助并节省大量时间和电子邮件。

引用文献:

MPGS-Implementing a Hosted Checkout Integration

MPGS-Create Checkout Session

MPGS-Checkout configuration

关于javascript - 万事达卡付款集成如何在完成付款后重定向到链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com