我正在尝试将Apple Pay应用到一个现有的react应用程序中,使用Braintree来管理支付。具体来说,该项目使用的是braintree-网络-插入。
该应用程序已经成功地处理了信用卡和贝宝的付款,我只是想让苹果的支付支持增加。我相信有几种实现Dropin的方法,但目前dropin.create()是该项目所使用的。
根据上述文档(链接),所需的只是向create()方法的options参数提供一个options属性,我已经这样做了:
createPaymentForm() {
const total = this.getTotal();
const displayTotal = total.toFormat('$0.00');
const paypalConfig = config.payPalEnabled && { paypal: { flow: 'vault' } };
const applePayConfig = config.applePayEnabled && {
applePay: {
displayName: 'Test Display Name',
paymentRequest: {
total: {
label: 'Test Fee',
amount: displayTotal,
},
countryCode: 'US',
currencyCode: 'USD',
supportedNetworks: ['visa', 'masterCard', 'amex', 'jcb', 'discover'],
merchantCapabilities: ['supports3DS', 'supportsCredit'],
}
},
};
dropin.create(
{
authorization: this.props.token,
selector: '#braintree-container',
paymentOptionPriority: ['card', 'paypal', 'applePay'],
...paypalConfig,
...applePayConfig,
card: {
overrides: {
styles: {
// style overrides are here, I didn't change this
},
},
},
},
(err, instance) => {
// callback stuff is here, I didn't change this
}
);
}据我所知,我遵循了文档中概述的所有说明:这里。applePay属性定义以及指向苹果paymentRequest定义的链接都可以找到这里。
一个重要的注意事项是,虽然我已经创建了一个Apple帐户(docs 这里),但我还没有登录到这个帐户,因为文档中的警告声明,如果您登录到生产设备上的帐户(我认为是我的Macbook?),该帐户将不再是沙箱帐户,并且将不再工作。我的理解是,这个帐户只能在尝试通过苹果支付结帐时使用。
尽管如此,我还是遵循了上述链接braintree文档中概述的所有其他步骤。
不幸的是,当dropin组件加载到网页(我正在使用Safari)时,我仍然认为信用卡和Paypal是唯一的两个可用选项。

,我的问题是:,我做错了什么,导致ApplePay选项没有出现在braintree-web-drop-in组件中?我错过了一步吗?当我在我的Mac上使用Safari时,我希望看到ApplePay在这里显示为一个可用的选项。
发布于 2022-01-26 19:16:20
我已经解决了这个问题。我们正在与客户通信,通过他们的Braintree沙箱控制面板设置Braintree沙箱帐户。
结果,应用程序实际上并没有连接到它们的沙箱,而是连接到另一个开发人员在最初解决问题时创建的一个完全不同的沙箱帐户。一旦我们意识到这一点,我们就访问了那个开发人员的帐户,启用了ApplePay,现在ApplePay出现在选项列表中!
所以我想说的是,如果将来有人有类似的问题,请确保braintree访问密钥与您认为它们属于的帐户匹配。

https://stackoverflow.com/questions/70859445
复制相似问题