我正在尝试使用Aurelia将MasterCard支付网关服务集成到SPA中。
我正在尝试使用托管的结帐机制来集成MPGS。
我在Aurelia viewmodel的附加事件中编写代码来加载session.js库,并在加载库时添加另一个脚本元素来初始化会话。
附件方法如下所列。
this.mpgsSessionScript = `if (self === top) { var antiClickjack = document.getElementById("antiClickjack"); antiClickjack.parentNode.removeChild(antiClickjack); } else { top.location = self.location; } PaymentSession.configure({ fields: { card: { number: "#card-number", securityCode: "#card-cvv", expiryMonth: "#card-expiry-month", expiryYear: "#card-expiry-year" } }, frameEmbeddingMitigation: ["javascript"], callbacks: { initialized: function(response) { console.log(response); }, formSessionUpdate: function(response) { } } }); function pay() { PaymentSession.updateSessionFromForm('card'); }`;
this.styleElement = document.createElement('style');
this.styleElement.setAttribute('id', "antiClickjack");
this.styleElement.innerText = "body{display:none !important;}";
document.head.appendChild(this.styleElement);
this.scriptElement = document.createElement('script');
this.scriptElement.src = this.sessionJs;
this.scriptElement.onload = () => {
const innerScriptElement = document.createElement('script');
innerScriptElement.innerText = this.mpgsSessionScript;
document.body.appendChild(innerScriptElement);
};
document.body.appendChild(this.scriptElement);
我可以成功运行代码并将脚本元素添加到DOM中,并且还会删除antiClickjack样式,这表示脚本元素已添加。
但问题是,卡号和cvv元素没有启用输入。如果成功初始化,则应启用卡号和cvv元素。
我在控制台中没有看到任何错误。任何帮助将不胜感激。