gpt4 book ai didi

ios - Apple Pay - onvalidatemerchant Payment Not Completed 错误

转载 作者:可可西里 更新时间:2023-11-01 05:59:48 27 4
gpt4 key购买 nike

我正在我们的网站上实现 Apple Pay。我没有 macOS 设备,正在使用 Windows Visual Studios/mvcnet。我已经完成了所有的 merchantID 和认证工作,并在 Windows 机器上进行了配置。我正在使用 Apple Pay JS 并在使用 session.begin() 打开付款表的步骤中。我使用 ajax 调用来检索 merchantSession,我相信它会成功,因为 session.completeMerchantValidation(merchantSession) 使用的对象包含一个 epochnumber、过期时间和站点名称。然而,在 completeMerchantValidation 之后,oncancel 事件立即被触发,我收到一条红色警报,提示“付款未完成”。

我需要有关如何从这里开始的帮助,我在网上某处读到我正在测试的域需要是注册的商家域。例如,当我测试按钮的功能时,我需要访问 www.mySite.com,我将 mySite.com 注册为域。有人可以确认这是不是真的......因为我正在通过本地 IP 地址从我的 iOS 设备访问该网站。如果这不是真的,那么从我所在的地方提供的任何帮助都会有所帮助。

function StartPaySession() {
var lineItems = [
{
label: 'Shipping',
amount: '0.00',
}
];

var shippingMethods = [
{
label: 'Free Shipping',
amount: '0.00',
identifier: 'free',
detail: 'Delivers in five business days',
},
{
label: 'Express Shipping',
amount: '5.00',
identifier: 'express',
detail: 'Delivers in two business days',
}
];

var total = {
label: 'Apple Pay Example',
amount: '8.99',
};

var paymentData = {
countryCode: 'US',
currencyCode: 'USD',
shippingMethods: shippingMethods,
lineItems: lineItems,
total: total,
supportedNetworks: ['amex', 'discover', 'masterCard', 'visa'],
merchantCapabilities: ['supports3DS'],
requiredShippingContactFields: ['postalAddress', 'email'],
};


var paySession = new ApplePaySession(2, paymentData);

paySession.onvalidatemerchant = function (event) {
var validationData = { ValidationUrl: event.validationURL };
$.ajax({
url: '/orders/cart/startapplepaysession',
method: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(validationData)
}).then(function (merchantSession) {
paySession.completeMerchantValidation(merchantSession);
alert("end = " + window.location.host);
}, function (error) {
alert("merchant validation unsuccessful: " + JSON.stringify(error));
paySession.abort();
});
};

paySession.onpaymentmethodselected = function (event) {
alert("1");
paySession.completePaymentMethodSelection(total, lineItems);
};

paySession.onshippingcontactselected = function (event) {
alert("2");
paySession.completeShippingContactSelection(ApplePaySession.STATUS_SUCCESS, shippingMethods, total, lineItems);
};

paySession.onshippingmethodselected = function (event) {
alert("3");
paySession.completeShippingMethodSelection(ApplePaySession.STATUS_SUCCESS, total, lineItems);
}

paySession.onpaymentauthorized = function (event) {
var token = event.payment.token;
alert("payment authorization | token = " + token);
paySession.completePayment(ApplePaySession.STATUS_SUCCESS);
}

paySession.oncancel = function (event) {
alert("payment cancel error " + event);
}

paySession.begin();
};

最佳答案

您在错误的位置创建了 Apple 支付 session 。您需要从服务器端创建它,而不是在 客户端

这些链接可能会有所帮助 requesting apple pay payment session , complete merchant validation

此处讨论了步骤:on validate merchant

关于ios - Apple Pay - onvalidatemerchant Payment Not Completed 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51485392/

27 4 0