我想看看是否有一种方法可以在 chrome 上的移动网络上快速检查用户是否启用了 Google Pay。在 IOS 上,我可以在 safari 开发工具上调用
window.ApplePaySession.can make payments()
方法来立即知道用户是否启用了 apple pay。
我可以在 Chrome 开发工具上调用等效的代码片段来确定用户是否启用了 Google Pay?我不需要能够进行交易或任何复杂的事情,我只需要知道用户是否启用了该功能。
window.PaymentRequest(methodData).canMakePayments()
应该可以解决问题,但该路线的问题是 methodData 需要诸如商家 ID 和商家名称之类的信息,而我没有这些信息。在苹果方面,我确实需要这些信息来进行交易,但我不需要它来简单地检查苹果支付是否可行。有没有一种方法(可能类似于我之前分享的代码片段)询问浏览器是否启用了 Google Pay,而无需提供商家 ID 等额外信息?
Google Pay 具有与 Apple Pay 类似的功能来确定支付方式的准备情况。虽然这并不像在 Apple Pay 中查找那么简单,但您必须设置一些数据来确定链接中给出的准备情况 - https://developers.google.com/pay/api/web/guides/tutorial#isreadytopay
但是,您不需要在此处明确要求商户 ID 来实现此
isReadyToPay
API。
canMakePayment()
也可用于Google Pay。以下是如何在无需指定商家 ID 的情况下实现此目的的示例:
new PaymentRequest(
[{
'supportedMethods': ['https://google.com/pay'],
'data': {
'apiVersion': 2,
'apiVersionMinor': 0,
'allowedPaymentMethods': [{
'type': 'CARD',
'parameters': {
'allowedAuthMethods': ['PAN_ONLY', 'CRYPTOGRAM_3DS'],
'allowedCardNetworks': ['VISA', 'MASTERCARD'],
},
}],
}
}],
{
'total': {
'label': 'Estimated Total Price',
'amount': { 'currency': 'USD', 'value': '10' }
}
}).canMakePayment().then((result) => console.log(result)).catch(function (err) {
console.log(err);
});
示例中
PaymentRequest
包含tokenizationSpecification
(包括gatewayMerchantId
)对象的原因是为canMakePayment()
和show()
重用相同的负载。