PayPal Nodejs 应用程序的快速结帐


Paypal express checkout for nodejs application

我有一个简单的使用nodejs的Web应用程序,其中包含一些产品。我已经使用angularjs设置了自己的购物车,我想要最简单的方法来实现PayPal付款。在过去的两周里,我一直在为PayPal的长篇文件而伤脑筋。

我在开发人员页面中看到了一个示例 curl 调用,并在 nodejs 中使用 restler 包实现了它。 它返回的令牌与 curl 调用相同(所以我想它有效)。我想知道如何让我的应用程序使用它。

var restler = require('restler');
restler.get('https://api-3t.sandbox.paypal.com/nvp?USER=PLEASEDONTPUTYOURUSERNAMEHERE&PWD=PLEASEDONTPUTENCRYPTEDPASSWORDSHERE&SIGNATURE=PLEASEDONTPUTYOURINFORMATIONHEREf&METHOD=SetExpressCheckout&VERSION=78&PAYMENTREQUEST_0_PAYMENTACTION=SALE&PAYMENTREQUEST_0_AMT=19&PAYMENTREQUEST_0_CURRENCYCODE=USD&cancelUrl=http://www.yourdomain.com/cancel.html&returnUrl=http://www.yourdomain.com/success.html')
.on('complete',function(data){console.log(data);})

非常感谢对此的帮助。我也对任何其他方式持开放态度,但由于我不喜欢长文档,所以我很难理解。有什么更简单的 api 调用来完成此操作吗?我只想让我的客户付款,然后将钱送到银行。暂时没有退款或任何其他流程。请帮帮我。

据我了解,您只需要一种使用 PayPal 接收付款的方式。

我对支付网关没有太多的帮助,但是当我这样做时,我更喜欢使用外部库来帮助我的方式,就像您一样,我更喜欢较短的文档。我的大部分工作都是使用Ruby的,但前段时间我正在使用Express来制作一个简单的电子商务应用程序,最终在Padrino中完成。

以下是我的旧笔记的复制粘贴,希望信息没有过时并且功能正常。

1:图书馆:

您需要获取paynode库。它支持PayPal和其他一些支付网关。我相信这些信息必须package.json

{ "name" : "my-shopping-cart"
  // Other information
 ,"dependencies":
    { 
      "paynode": "0.3.6",
      // other libraries
    }
}

其次是我猜npm install

2:配置

var payflow = require('paynode').use('payflow') 
var client  = payflow.createClient({ 
  level:payflow.levels.sandbox , 
  user:'username@example.com' , 
  password:'1279778545' , 
  signature: 'AiPC9BjkCyDFQXbSkoZcgqH3hpacA0hAtGdCbvZOkLhMJ8t2a.QoecEJ' 
})

3:获取信息:

获取服务器的信息,可能通过HTTP帖子(我不确定它将如何完成,因为我仍在开始学习客户端MV*框架)。

products = null;
total = 0;
/* Update values */
// products = getAllProducts()
// total = getTotal()
$.ajax({
  type: "POST",
  url:  'http://my-web-site.com/pay',
  data: { products: products, total:total },
  success: success,
  dataType: dataType
});

4:部分路线(支付,确认最重要)

app.post('/pay', function(req, res){
  // Store information
  // Calculate sums or any similar information 
  request.returnurl = 'http://my-web-site.com/confirm'
  request.cancelurl = 'http://my-web-site.com/cancel'
  // make request and handle response
  client.setExpressCheckout(request).on('success', function(response){
    tokenStore.store(req.sessionHash, response.token)
    res.redirect('https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token='+response.token)
  }).on('failure', function(response){
    res.render('start.haml', {locals:{
      error:response.errors[0].longmessage
      }
    })
  })
})

app.get('/confirm', function(req, res){
  // Necessary fetching - ex: user
  client.getExpressCheckoutDetails({token:req.param('token')})
    .on('success', function(response){
      // Save the order
      // orders.save(req.sessionHash, response)
      res.render('confirm.haml', {
        locals:{
          paypalResponse:response,
          orderTotal:response.paymentrequest[0].amt
        }
      })     
    })
    .on('failure', function(response){
      res.render('error.haml', {locals:{error:response.errors[0].longmessage}})
    })
})

上面的大多数(如果不是全部)代码都来自以下 URL:https://github.com/jamescarr/node-shopping-cart

eBay开发者页面上的有用链接:http://go.developer.ebay.com/devzone/articles/integrating-paypal-express-checkout-your-nodejs-app