【问题标题】:Paypal batch payout not working in node js apiPaypal 批量支付在节点 js api 中不起作用
【发布时间】:2016-07-23 16:41:26
【问题描述】:

我正在尝试使用测试沙盒帐户创建批量付款。 “创建付款”功能在正确响应的情况下工作得非常好:

var paypal_sdk = require('paypal-rest-sdk');

var config_opts = {
    'host': host, //host defined
    'port':'',
    'mode':'sandbox',
    'client_id': client_id, //clientID defined
    'client_secret': client_secret, //clientSecret defined
};

var makePayment = function (req, res, next) {
    var create_payment_json = {
        "intent": "sale",
        "payer": {
            "payment_method": "paypal"
        },
        "redirect_urls": {
            "return_url": "http://mystore.in",
            "cancel_url": "http://mystore.in/contact"
        },
        "transactions": [
            {
                "amount": {
                    "currency": "USD",
                    "total": "1.00"
                },
                "description": "This is the payment description."
            }
        ]
    };

    paypal_sdk.payment.create(create_payment_json,config_opts, function (err, data) {
        if (err) console.log("ERRRRR", err);
        console.log("Create Payment Response");
        console.log(data);
        //res.send('201');
    });
}

makePayment();  //CALLING THE FUNCTION

但是,当我尝试创建新的付款时,通过将 create_payment_json 编辑为:

var create_payment_json = {
        "sender_batch_header": {
            "email_subject": "You have a Payout!",
            "recipient_type": "EMAIL"
        },
        "items": [
            {
                "recipient_type": "EMAIL",
                "amount": {
                    "value": "1.0",
                    "currency": "USD"
                },
                "note": "Thanks for your patronage!",
                "sender_item_id": "201403140001",
                "receiver": "shirt-supplier-one@mail.com"
            }
        ]
    };

主要功能为:

paypal_sdk.payout.create(create_payment_json,config_opts, function (err, data) {
        if (err) console.log("ERRRRR", err);
        console.log("Create Payment Response");
        console.log(data);
        //res.send('201');
    });

我收到如下错误:

{ [Error: Response Status : 401]
  response: 
   { error: 'invalid_client',
     error_description: 'Client Authentication failed',
     httpStatusCode: 401 },
  httpStatusCode: 401 }

但是,我确信传递的凭据是正确的,并且在创建付款的情况下它们可以正常工作。 我首先为测试做这一切。此外,该测试 paypal 开发者帐户也启用了支付功能。

有什么可能的解决办法吗?

【问题讨论】:

    标签: node.js paypal paypal-sandbox paypal-adaptive-payments paypal-rest-sdk


    【解决方案1】:

    我刚刚得到了解决方案。好吧,补充一点,我必须说 paypal 应该提供适当的错误处理,让开发人员知道每个错误背后的原因。

    错误是因为我在配置中设置的货币。测试开发者帐户是其他国家的,货币代码设置为“美元”。 只需根据您在创建该测试开发者帐户时选择的国家/地区创建一个新帐户并在配置中设置货币代码即可。

    【讨论】:

      【解决方案2】:

      我测试 payout ,如下代码,它工作正常。您可以将您的代码与我的示例进行比较,您可以添加'sender_batch_id'参数进行尝试。

      curl -v https://api.sandbox.paypal.com/v1/payments/payouts/ \
      -H "Content-Type:application/json" \
      -H "Authorization: *****" \
      -d '{
          "sender_batch_header": {
              "sender_batch_id": "batch_25",
              "email_subject": "You have a payment"
          },
          "items": [
              {
                  "recipient_type": "EMAIL",
                  "amount": {
                      "value": 0.99,
                      "currency": "USD"
                  },
                  "receiver": "aaabbb@email.com",
                  "note": "Thank you.",
                  "sender_item_id": "item_1"
              },
              {
                  "recipient_type": "EMAIL",
                  "amount": {
                      "value": 0.90,
                      "currency": "USD"
                  },
                  "receiver": "bbbb@gmail.com",
                  "note": "Thank you.",
                  "sender_item_id": "item_2"
              },
              {
                  "recipient_type": "EMAIL",
                  "amount": {
                      "value": 2.00,
                      "currency": "USD"
                  },
                  "receiver": "cccc@gmail.com",
                  "note": "Thank you.",
                  "sender_item_id": "item_3"
              }
          ]
      }'

      【讨论】:

        猜你喜欢
        • 2015-11-18
        • 2015-09-20
        • 1970-01-01
        • 2015-11-17
        • 2013-12-24
        • 2016-12-08
        • 2017-04-15
        • 1970-01-01
        • 2013-08-31
        相关资源
        最近更新 更多