0

我正在尝试使用 Aurelia 将万事达卡支付网关服务集成到 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 元素。

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

4

0 回答 0