【问题标题】:Is this really how you do a one-time payment?这真的是您进行一次性付款的方式吗?
【发布时间】:2020-06-27 17:20:41
【问题描述】:

我已经以简单的方式完成了看起来像这样的每月订阅付款......

paypal.Buttons({

  createSubscription: function(data, actions) {

    return actions.subscription.create({

      'plan_id': 'P-2UF78835G6983425GLSM44MA'

    });

  },


  onApprove: function(data, actions) {

    alert('You have successfully created subscription ' + data.subscriptionID);

  }


}).render('#paypal-button-container');

正如您在上面看到的,您首先通过邮递员制定计划并传入plan_id。有了这些计划,您可以修补什么不可以。

既然我是一次性付款,我猜你应该这样做吗?

  paypal.Buttons({
    createOrder: function(data, actions) {
      // This function sets up the details of the transaction, including the amount and line item details.
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: '0.01'
          }
        }]
      });
    }
  }).render('#paypal-button-container');

是否有 order_id 或我可以传入的东西,因为您可以使用邮递员正确创建订单?因此,您可以根据需要修补金额或任何内容。

paypal 文档到处都是,而且不是很清楚。我使用的是智能按钮,而不是 SDK。

【问题讨论】:

    标签: paypal paypal-sandbox


    【解决方案1】:

    您的代码显示了创建订单的客户端版本。您可以在此处找到相同的完整演示模式:https://developer.paypal.com/demo/checkout/#/pattern/client

    如果您想在您的服务器上创建一个 order_id,那么您可以改用服务器端演示模式来获取该 order_id:https://developer.paypal.com/demo/checkout/#/pattern/server


    如果您能够实现,服务器端模式会更好、更安全。我要补充的唯一警告是,一旦一切顺利,请不要忽视handle funding source failures——这样如果服务器端捕获失败,例如付款人的第一张卡被拒绝,这会传播回 UI,他们可以选择其他卡。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-19
      • 2014-05-08
      • 2015-02-06
      • 2013-05-06
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多