微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将自定义变量传递给 PayPal

如何解决将自定义变量传递给 PayPal

我正在尝试重新创建此 https://www.paypal.com/donate/?hosted_button_id=JA4LPSED5LVCG,它是标准的托管 PayPal 捐赠按钮。它有预设金额,让用户添加他们的意图(支持哪个程序),以及每月定期捐款。我开始使用 jQuery 来定位元素并传递预设数量,这奏效了,但是因为我使用了 vanilla js 方法。我的问题是,我什至使用 PP SDK 正确设置了吗?或者我是否需要与 API 进行不同类型的集成以支持经常性捐赠。

在这一点上,我的代码比我开始使用 jQuery 时更糟糕(至少我能够传递预设金额,但不能传递捐赠意图)。我在这里设置了一个 Codepen,希望得到任何和所有的反馈。 https://codepen.io/tripdog/pen/dyvNeEV

fakeAsync
var amount = 0;
var selectedProgram = "";

const buttons = document.querySelectorAll("button.Paypal");
buttons.forEach((btn) => {
  btn.addEventListener("click",() => {
    amount = btn.dataset.id;
  });
});

const programSelect = document.getElementById("programSelect");
programSelect.addEventListener("change",(e) => {
  selectedProgram = programSelect.value;
});

// Render the PayPal button into #paypal-button-container
paypal
  .Buttons({
    // Set up the transaction
    createOrder: function(data,actions) {
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: amount
          },description: programSelect
        }]
      });
    },// Finalize the transaction
    onApprove: function(data,actions) {
      return actions.order.capture().then(function(details) {
        // Show a success message to the buyer
        alert("Donation completed by " + details.payer.name.given_name + "!");
        location.replace("https://www.example.com/completed_success.PHP");
      });
    }
  })
  .render("#paypal-button-container");

PS 我目前不担心样式,只担心功能。客户端 ID 被沙盒化了 :-)

解决方法

该代码不适用于定期付款。订阅是一个单独的集成,请参阅订阅概述:https://developer.paypal.com/docs/subscriptions/,除了 API 调用之外,您还可以在接收帐户中手动创建和管理计费产品和计划:


如果您想在 PayPal 页面上选择是否定期进行捐赠,唯一的选择是在 https://www.paypal.com/buttons 创建一个非 JS 捐赠按钮。在第 2 步中,您可以取消选中在 PayPal 保存按钮的选项,并且在生成代码时您可以取消代码保护。可以使用 custom 参数 https://developer.paypal.com/docs/paypal-payments-standard/integration-guide/Appx-websitestandard-htmlvariables/#payment-transaction-variables 传递自定义值,这将在接收方帐户的交易详细信息中可见。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。