ApplePayJS 无效访问错误

问题描述 投票:0回答:3

尝试将 ApplePayJS 集成到我的网站中并收到此恼人的消息::

InvalidAccessError Code 15

"The object does not support the operation or argument"

一切似乎都进展顺利,但现在却毫无进展。

safari applepayjs
3个回答
1
投票

如果您收到此错误,根据我的经验,Safari 现在对 ApplePayJS 无效,您必须强制退出并再次重新打开它。

这就是为什么如果你将字符串而不是对象传递到

completeMerchantValidation
中,ApplePay API 会完全崩溃的原因。

如果你从服务器返回的不是 JSON 对象,而是字符串,那么你可以这样做:

session.completeMerchantValidation(JSON.parse(merchantSession));

或者更好 - 修复您的服务器以返回 JSON 对象而不是字符串。


4年后更新:

我今天刚刚在真正的客户身上再次看到了这一点,而不是在我自己的测试期间。在这种情况下,订单已成功,但客户认为订单失败,因此尝试再次完成该流程。

奇怪的是,在这次调用中出现了相同的错误“该对象不支持操作或参数。”

applePayTokenize.session.completePayment(ApplePaySession.STATUS_SUCCESS);

自从付款成功后,我改变了逻辑,忽略异常(仅适用于 STATUS_SUCCESS)并继续到最后一页。我什至不知道ApplePay表是否仍然打开,但即使它至少在取消时它也会在收据页面上。


0
投票

我也遇到过这个问题,但原因不同

您在会话中的域名需要与您的浏览器域名相同。您在 InitiativeContext 中在后端设置域名

https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_ payment_session


0
投票

谁在这个阶段出错了。

applePayTokenize.session.completePayment(ApplePaySession.STATUS_SUCCESS);

在我的情况下,问题是后端花了很长时间来处理付款,因为成功付款后我有自己的逻辑,并且我无法通过completePayment SUCCESS关闭会话,因为会话时间相当短并且它会自行关闭或我不知道为什么会这样。 我通过在支付处理后使用异步操作来摆脱后端长时间的处理,解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.