【发布时间】:2020-03-08 18:58:45
【问题描述】:
我正在尝试在使用 Typescript 的 react 项目中在结账时实施 Apple Pay。我已经安装了braintree-web 包并按照braintree 网站上的说明来初始化我的ApplePaySession。虽然 typescript 允许我编译项目,但在浏览器中我对 new ApplePaySession(3, paymentRequest); 的调用是未定义的。我绞尽脑汁,但我不明白出了什么问题。这是我如何初始化 ApplePay 的代码 sn-p。
import { applePay, ApplePayStatusCodes, ApplePaySession } from 'braintree-web';
...
beginApplePay() {
if (!this.btApplePayInstance) {
//throw an erro
}
const paymentRequest = this.createPaymentRequest();
const session = this.createSession(paymentRequest);
session && session.begin();
}
createSession(
paymentRequest: braintree.ApplePayPaymentRequest
): braintree.ApplePaySession | null {
let session: braintree.ApplePaySession;
console.log('creating session');
console.log('Sample payment request: ', paymentRequest);
console.log(
'Supports API v3: ' + window.ApplePaySession.supportsVersion(3)
);
try {
debugger;
session = new ApplePaySession(3, paymentRequest); //this is where it fails
console.log(session);
} catch (err) {
console.log(err);
//throw an error
return null;
}
这是我的浏览器所说的:
TypeError: undefined is not a constructor (evaluating 'new braintree_web__WEBPACK_IMPORTED_MODULE_1__["ApplePaySession"](3, paymentRequest)')
我们将不胜感激任何对出了什么问题的洞察力。
【问题讨论】:
标签: reactjs typescript braintree applepay applepayjs