ApplePayJS 无效访问错误
ApplePayJS InvalidAccessError
尝试将 ApplePayJS 集成到我的网站并收到这条烦人的消息::
InvalidAccessError Code 15
"The object does not support the operation or argument"
一切似乎都进行得很顺利,但现在什么都不管用了。
如果您遇到此错误,根据我的经验,Safari 现在对 ApplePayJS 无效,您必须先强制退出并重新打开它。
如果您将字符串而不是对象传递到 completeMerchantValidation
.
,ApplePay API 就会完全崩溃
如果您从您的服务器 return 得到的不是 JSON 对象,而是一个字符串,那么您可以这样做:
session.completeMerchantValidation(JSON.parse(merchantSession));
或者更好 - 将您的服务器修复为 return 一个 JSON 对象而不是字符串。
4年后更新:
今天我又看到了一个真正的客户,而不是在我自己的测试中。在这种情况下,订单已成功,但客户认为订单失败,因此尝试再次执行该过程。
奇怪的是,这次调用出现了同样的错误“该对象不支持该操作或参数。”
applePayTokenize.session.completePayment(ApplePaySession.STATUS_SUCCESS);
由于付款成功,我更改了我的逻辑以忽略异常(仅限 STATUS_SUCCESS)并继续到最后一页。我什至不知道 ApplePay sheet 是否仍然开放,但即使它至少在取消时也会出现在收据页面上。
我也遇到过这个问题,但原因不同
您在会话中的域名需要与您浏览器的域名相同。您在 initiativeContext
中在后端设置域名
尝试将 ApplePayJS 集成到我的网站并收到这条烦人的消息::
InvalidAccessError Code 15
"The object does not support the operation or argument"
一切似乎都进行得很顺利,但现在什么都不管用了。
如果您遇到此错误,根据我的经验,Safari 现在对 ApplePayJS 无效,您必须先强制退出并重新打开它。
如果您将字符串而不是对象传递到 completeMerchantValidation
.
如果您从您的服务器 return 得到的不是 JSON 对象,而是一个字符串,那么您可以这样做:
session.completeMerchantValidation(JSON.parse(merchantSession));
或者更好 - 将您的服务器修复为 return 一个 JSON 对象而不是字符串。
4年后更新:
今天我又看到了一个真正的客户,而不是在我自己的测试中。在这种情况下,订单已成功,但客户认为订单失败,因此尝试再次执行该过程。
奇怪的是,这次调用出现了同样的错误“该对象不支持该操作或参数。”
applePayTokenize.session.completePayment(ApplePaySession.STATUS_SUCCESS);
由于付款成功,我更改了我的逻辑以忽略异常(仅限 STATUS_SUCCESS)并继续到最后一页。我什至不知道 ApplePay sheet 是否仍然开放,但即使它至少在取消时也会出现在收据页面上。
我也遇到过这个问题,但原因不同
您在会话中的域名需要与您浏览器的域名相同。您在 initiativeContext
中在后端设置域名