在Aurelia SPA中集成MPGS session.js

时间:2017-07-09 12:57:57

标签: single-page-application aurelia mastercard

我正在尝试使用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元素。

我在控制台中没有看到任何错误。任何帮助将不胜感激。

0 个答案:

没有答案