【发布时间】:2021-11-15 22:51:00
【问题描述】:
我在 react js 中使用标签脚本有困难。我正在尝试使用在线支付 API。使用 API 的第一条指令是使用:
<script src="https://assets.pagseguro.com.br/checkout-sdk-js/rc/dist/browser/pagseguro.min.js"></script>
根据API参考,下一步是:
- 包含 JavaScript 后,您必须配置函数调用 PagSeguro.encryptCard(),在 publicKey 参数中传递您的公钥。
var card = PagSeguro.encryptCard({
publicKey: "MY_PUBLIC_KEY",
holder: "First name Last name",
number: "4242424242424242",
expMonth: "12",
expYear: "2030",
securityCode: "123"
});
var encrypted = card.encryptedCard;
我的问题是由于 PagSeguro.encryptCard() 部分造成的。 PagSeguro 未定义。如何提取脚本中的PagSeguro和encryptCard()?
我正在使用下面的代码:
import React, {useEffect, useState} from 'react'
function Pay(){
const [Infor, setInfor]=useState();
useEffect(() => {
const script = document.createElement('script');
script.src = 'https://assets.pagseguro.com.br/checkout-sdk-js/rc/dist/browser/pagseguro.min.js';
script.async = true;
script.onload = (function(){
setInfor(script);
})
console.log('script',script)
const container = document.getElementById("mydiv");
container.appendChild(script);
let card = script.PagSeguro.encryptCard({
publicKey: "MINHA_CHAVE_PUBLICA",
holder: "Nome Sobrenome",
number: "4242424242424242",
expMonth: "12",
expYear: "2030",
securityCode: "123"
});
console.log('card',card)
}, []);
return (
<div id="mydiv">
<h1>Payment</h1>
</div>
);
}
export default Pay
这是错误信息。 TypeError: Cannot read properties of undefined (reading 'encryptCard')
【问题讨论】:
-
您在 DOM 中的何处包含该脚本以及您在何处尝试执行该代码 sn-p?
-
当
<script>运行时,它会在window上公开PagSeguro。这意味着您可以直接引用它,也可以使用window.PagSeguro引用它 -
我创建了一个名为 pay 的组件。我使用 useEffect 来尝试使用脚本。
标签: javascript reactjs tags payment script