贝宝反应集成不创建交易

时间:2021-04-28 01:39:40

标签: reactjs paypal checkout

我正在尝试使用 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>
  );
}

1 个答案:

答案 0 :(得分:1)

您的 onApprove 函数在付款人批准后未捕获订单,因此未创建 PayPal 交易。

由于您从 createOrder 内部使用 actions.order.create 在客户端创建,因此您还应该通过 actions.order.capture 在客户端捕获(从 onApprove 内部)