使用变量设置 PayPal API 中的描述字段

问题描述 投票:0回答:1

我正在尝试使用 C# 代码隐藏中的字符串变量来设置描述字段。除非我对 HTML 代码中嵌入的 Javascript 中的描述进行硬编码,否则我无法让按钮正常工作。

目标是建立具有可变描述的单一支付金额。我已经计算出了金额,但似乎无法获取描述字段。按钮呈现,但单击时我只收到错误消息。

如果我使用它确实有效:

Description: "Hard Code Info"

我是 Javascript 新手 - 任何帮助将不胜感激。

<script src="https://www.paypal.com/sdk/js?client-id=xx&currency=USD&intent=capture"></script>
<script>
  var num
  var apr
  var ssk
  const paypalButtonsComponent = paypal.Buttons({
    // optional styling for buttons
    // https://developer.paypal.com/docs/checkout/standard/customize/buttons-style-guide/
    style: {
      color: "gold",
      shape: "rect",
      layout: "vertical"
    },

    // set up the transaction
    createOrder: (data, actions) => {
      // pass in any options from the v2 orders create call:
      // https://developer.paypal.com/api/orders/v2/#orders-create-request-body
      num = document.getElementById("MyAmount").textContent;
      ssk = document.getElementById("WhyDonate").textContent;
      const createOrderPayload = {
        purchase_units: [{
          description: {
            value: ssk
          },
          amount: {
            value: num
          },
        }],
        items: [{
          name: "Dues Or Donation",
          unit_amount: {
            currency_code: 'USD',
            value: num,
          },
          quantity: "1"
        }]
      };
      return actions.order.create(createOrderPayload);
    },

    // finalize the transaction
    onApprove: (data, actions) => {
      const captureOrderHandler = (details) => {
        const payerName = details.payer.name.given_name;
        document.getElementById("MyAmount").textContent = apr;
        document.getElementById('<%=ClearSession.ClientID %>').click();
      };
      return actions.order.capture().then(captureOrderHandler);
      console.log(Details);
    },

    // handle unrecoverable errors
    onError: (err) => {
      console.log('An error prevented the buyer from checking out with PayPal');
      // alert('An error prevented the buyer from checking out with PayPal');
    }
  });

  paypalButtonsComponent
    .render("#paypal-button-container")
    .catch((err) => {
      console.log('PayPal Buttons failed to render');
    });
</script>
javascript paypal
1个回答
0
投票

actions.order.create
.capture
已弃用,不应用于任何新集成;支持将在未来被取消和删除。

相反,从后端(不是浏览器 JS)创建并捕获订单 - 并从您拥有的 JS 获取这些路由。

请参阅标准集成指南了解详细信息和示例。该示例使用 Node.js 作为后端,但当然这些后端路由可以在任何环境/语言中实现;无论您的服务器使用什么。

© www.soinside.com 2019 - 2024. All rights reserved.