我正在尝试使用 react 库 (@paypal/react-paypal-js) 与 PayPal checkout 集成,付款响应成功,但是当我使用实时客户端 ID 时,它不会从我的信用卡。
import { api } from "../services/api";
import { PayPalButtons, PayPalScriptProvider } from "@paypal/react-paypal-js";
export default function Pagamento() {
function createOrder(data, actions) {
return actions.order.create({
intent: "CAPTURE",
purchase_units: [
{
amount: {
value: "2.00",
},
},
],
});
}
function onApprove(data, actions) {
console.log(data);
const paymentID = data.paymentID;
const orderID = data.orderID;
const payerID = data.payerID;
api
.get("update_pacientes", {
params: {
username: username,
column: "status",
paymentID: paymentID,
orderID: orderID,
payerID: payerID,
},
})
.then((response) => {
console.log(response);
// , location.reload();
});
}
return (
<div id="pagamento_wrapper">
<PayPalScriptProvider
options={{
"client-id": OMMITED FOR SECURITY REASONS
,
currency: "BRL",
}}
>
<PayPalButtons
style={{ color: "blue", shape: "pill", label: "pay", height: 40 }}
createOrder={(data, actions) => createOrder(data, actions)}
onApprove={(data, actions) => onApprove(data, actions)}
/>
</PayPalScriptProvider>
</div>
</div>
);
}
答案 0 :(得分:1)
您的 onApprove
函数在付款人批准后未捕获订单,因此未创建 PayPal 交易。
由于您从 createOrder
内部使用 actions.order.create
在客户端创建,因此您还应该通过 actions.order.capture
在客户端捕获(从 onApprove
内部)>