javascript - Paypal 客户端 REST : how to notify server?

标签 javascript node.js paypal paypal-sandbox paypal-rest-sdk

使用 Paypal 客户端 REST:https://developer.paypal.com/demo/checkout/#/pattern/client

paypal 如何通知服务器用户已付款,以便我可以进行一些后处理、写入数据库等。是否有可以附加的 webhook?

最佳答案

事实证明他们支持混合、客户端到服务器端的集成,反之亦然:https://github.com/paypal/paypal-checkout/blob/master/docs/hybrid.md

有了它,您可以在客户端创建支付,并使用服务器端 SDK (paypal-rest-sdk),在服务器端执行它。

客户:

paypal.Button.render({
  env: 'sandbox', // Or 'production',
  commit: true, // Show a 'Pay Now' button
  client: {
    sandbox: CLIENT_ID,
    production: CLIENT_ID
  },
  payment: function(data, actions) {        
    return actions.payment.create({
      ...
    });
  },
  onAuthorize: function(data, actions) {
    $.ajax({
      type: 'POST',
      url: 'http://potato-03.ea.com/paypal/payment/execute',
      dataType: 'json',
      contentType: "application/json",
      data: JSON.stringify({
        payment_id: data.paymentID,
        payer_id: data.payerID
      })     
    }).done(function(data) {
      console.log('Payment received!');
    });
  },
  onCancel: function(data) {
    console.log('The payment was cancelled!');
  }
}, '#paypal-button');

服务器:

const paypal = require('paypal-rest-sdk');

let paymentId = req.params.payment_id;
let payerId = { payer_id: req.params.payer_id };

paypal.payment.execute(paymentId, payerId, function(err, payment){
      if(err){
        console.error(JSON.stringify(err));
        return error.errorHandler(err, null, null, reject, null);
      } else {
        if (payment.state == 'approved'){
          console.log('payment completed successfully');
        } else {
          console.log('payment not successful');
        }
      }
    });

关于javascript - Paypal 客户端 REST : how to notify server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44276043/

相关文章:

javascript - CSS/JavaScript。为同一属性赋值

javascript - jQuery 复选框样式问题

javascript - 将Electron与React一起使用时的“Uncaught TypeError: fs.writeFile is not a function”

node.js - react Node 通过 axios 传递文件,出现 multer 错误 500

node.js - 应用程序启动时,NodeJS Windows 10 地理定位模块在 Electron 中引发错误

PHP - 接受多个支付网关

paypal - Magento2 - 使用 Paypal 计费协议(protocol)创建自定义订单 ("mandatory params missing referenceId error")

javascript - 由于信号 : Segmentation fault: 11 sent by exc handler[0]//NativeScript,服务退出

javascript - 如何触发点击键13

Paypal 在哪里设置接受沙盒中的数字商品支付