javascript - 在 Paypal 中,什么可以保护买家在结账时从他们的账户中扣除正确的金额?

标签 javascript php paypal braintree

我正在使用 Braintree SDK 在 PayPal 沙箱中测试我的代码。 我可以在客户端设置一个数量,例如10 美元,客户可以继续结帐流程。

但在服务器端,收到“nonce”代码后,我可以向客户端收取 200 美元,并且没有错误或验证。

如果开发商决定收取比结账时所说的多的费用,如何保护买家免于多付?

在客户端,我将意向选项发送到“授权”,但如果我愿意,我仍然可以向买家多收费用。

客户端代码

 paypal.Button.render({
     braintree: braintree,
                  client: {

                    sandbox: '{{$btClientToken}}'
                  },
                  env: 'sandbox',
                  commit: true, 

                  payment: function (data, actions) {
                    return actions.braintree.create({
                      flow: 'checkout', // Required
                      intent:'authorize',
                      amount: '10', // Required
                      currency: 'USD', // Required
                      displayName: 'test dispaly name',
                      description: 'test description',
                      lineItems:[
                        {
                            quantity:'1',
                            unitAmount:'10',
                            totalAmount: '10',
                            name:'line item test',
                            description:'test description',
                            kind:'debit'
                        }

                      ]
                    });

                  },
                   onAuthorize: function (payload) {

                    console.log(payload);

                    $.ajax({
                        method:'POST',
                        data:{
                            _token: '{{ csrf_token() }}',
                            payment_method_nonce: payload.nonce,
                            uid: '{{$uid}}',
                            order_id:payload.orderID,
                            payer_id:payload.payerID,
                            payment_token: payload.paymentToken
                        },
                        url:'{{url("cart/order/nonce")}}'

                    }).done((reply)=>{

                        console.log(reply);
                    });
                  },

                }, '#paypal-pay');

服务器端代码

$result = $gateway->transaction()->sale([
   'amount' => '200.00',
   'paymentMethodNonce' => $nonce,
       'descriptor' => [
          'name' => 'company name*myurl.com'
      ],
      'options' => [
        'submitForSettlement' => True,
        "paypal" => [
            "description" => $order->title
        ],
      ],
      'lineItems' => [
            [
                  'description' => 'TEST DESCRIPTION',
                  'name'        => 'TEST NAME',
                  'quantity'    => '1',
                  'unitAmount'  => '200.00',
                  'totalAmount' => '200.00',
                  'kind'        => 'debit'
            ]

      ]
    ]);

我在卖家控制面板中收到了一笔成功的交易,金额为 200 美元。

最佳答案

大多数消费者保护法都允许消费者在您向他们收费不当的情况下向您追回他们的钱,如果您系统地这样做,贸易标准机构可能会对您采取行动。

PayPal 本身也会通过买家保护保证提供保护,这意味着如果商家不自行退款,消费者可以直接从 PayPal 取回他们的钱。

编辑

@Grumpy 提出了一个很好的观点,PayPal 很可能会在几次交易后阻止或禁止您的帐户。

关于javascript - 在 Paypal 中,什么可以保护买家在结账时从他们的账户中扣除正确的金额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54615447/

相关文章:

php - 在我看来,如何使用 php 作为模板引擎来调用 css?

php - Codeigniter 使用复选框删除多行

PayPal Sandbox API SSL握手错误突然开始使用PayPal PHP SDK?

javascript - $(window).on ('scroll',函数()当滚动到50%时,我想加载一些数据

javascript - 合并两个对象的值,如果匹配则增加键的值 [Javascript]

php - 检测表格中的段落

php - 提交 Paypal 表单时的变量

api - Paypal API 错误 10002 尽管凭据是正确的

javascript - Android Webview Javascript 将无法工作

javascript - 为什么在这种情况下使用 IIFE?