【问题标题】:Confused about server-side SDK of PayPal对 PayPal 的服务器端 SDK 感到困惑
【发布时间】:2022-01-08 03:37:29
【问题描述】:

目前我正在将 PayPal 支付集成到我的项目中,但我对某些事情感到困惑。一切正常,我很高兴看到它正常工作,但不知何故,我的第六感告诉我创建服务器端 SDK 请求而不是当前客户端。这是我到目前为止所做的:

paypal.Buttons({
    style: {
    layout:  'vertical',
    color:   'blue',
    shape:   'rect',
    label:   'pay',
}, createOrder: function(data, actions) {

        return actions.order.create({

            purchase_units: [{

            amount: {
                description: '{{ $setup->plan->name }}',
                value: '{{ $setup->plan->price }}'

            }

            }],
            application_context: {
                shipping_preference: 'NO_SHIPPING'
            }

        });

}, onApprove: function(data, actions) {

    return actions.order.capture().then(function(orderData) {

        alert('successfull payment');

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

一切都很好,但我想创建一个服务器端意图,因为我觉得它更安全。有人可以解释一下,如果交易成功完成并且用户支付了商品的确切价格,我如何可以轻松地检查交易,或者为付款创建服务器端意图,这样我就可以防止用户手动编辑价钱?文档对我来说太难理解了,这就是为什么我在这里问我的问题。我的项目在 Laravel 8

【问题讨论】:

    标签: javascript laravel paypal


    【解决方案1】:

    Set up standard payments 中的“添加和修改代码”部分介绍了如何进行服务器集成,并附有示例代码的链接。

    在您的服务器上创建 2 条路由,一条用于“创建订单”,一条用于“捕获订单”,documented here。两个路由都应该只返回 JSON 数据(没有 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id,这是 PayPal 交易 ID)并执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)立即将您的返回 JSON 转发给前端调用者。

    将这 2 条路由与前端审批流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

    【讨论】:

      猜你喜欢
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 2012-01-08
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多