PayPal Donate SDK - 预填金额和频率

PayPal Donate SDK - Prefill Amount and Frequency

我正在构建一个包含自定义捐赠表单的应用程序,用户可以在其中 select:

我正在使用 PayPal Donate SDK,但找不到一种方法来传递金额或频率,以便预先填写金额和“每月捐款”复选框 selected/deselected 基于用户输入。

PayPal 按钮已添加到页面(只是在表单按钮上设置了绝对样式)并且 SDK 以模式打开捐赠页面,这是我想要的结果。

这是显示我的按钮的代码:

window.PayPal.Donation.Button({
    env: "sandbox",
    hosted_button_id: "xxxxxxxxxxxx",
    onComplete: function() {
        // Redirect to success page, save the PP transaction details, etc.
    }
}).render("#paypal-donate-button-container");

使用标准 PayPal.Buttons API,我可以像这样传入一个 createOrder 函数,我可以在其中设置数量,例如;

window.PayPal.Buttons({
    // ...
    createOrder: function(data, actions) {
        return actions.order.create({
            purchase_units: [{
                amount: {
                    value: document.querySelector(".selected-premium").dataset.value
                },
                reference_id: document.querySelector(".selected-premium").dataset.days + "-days"
            }]
        });
    }
}

有没有办法使用 SDK 传递金额和频率,类似于我使用标准付款的方式 API?如果不是,2022 年有哪些不依赖于使用不再 exist/deprecated 方法的文档的 SO 答案的替代方案?

使用 PayPal 捐赠流程(包括捐赠 SDK)

  • 您可以为 amountcurrency_code 传递参数。如果您确实通过了预先填写的金额,则将提供使捐款重复的选项。

  • 您不能预先 select 使捐款在捐款流程中重复出现的选项。


对于经常性捐赠的情况——因为不可能预先选中使它们在捐赠流程中重复出现的选项,也不可能预先填写金额并让重复选择可用——什么您可以做的是在 selected 重复时使用订阅流程,并将此呈现在单独的 div 容器中,该容器 shown/hidden 基于您的月度与单次 select离子。您帐户的订阅按钮可以在以下位置生成:https://www.paypal.com/billing/plans . The plan it uses must have a specific amount, but this can be overridden 在 JS createSubscription 函数中(基于您网站上输入的任何 selection 或金额)(除了基础plan_id) 添加一个 plan 对象,其中包含一个具有您想要的 amount/frequency 的 billing_cycles 对象。