Node.js Paypal批量付款在节点js api中不起作用

Node.js Paypal批量付款在节点js api中不起作用,node.js,paypal,paypal-sandbox,paypal-adaptive-payments,paypal-rest-sdk,Node.js,Paypal,Paypal Sandbox,Paypal Adaptive Payments,Paypal Rest Sdk,我正在尝试用一个测试沙箱帐户创建一个批量支付。 “创建付款”功能工作正常,响应正确: 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': cli

我正在尝试用一个测试沙箱帐户创建一个批量支付。 “创建付款”功能工作正常,响应正确:

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开发人员帐户的支付功能也已启用


有任何可能的解决方案吗?

我测试支出,如下代码所示,它工作正常。您可以将您的代码与我的示例进行比较,您可以添加'sender\u batch\u id'参数进行尝试

curl-vhttps://api.sandbox.paypal.com/v1/payments/payouts/ \
-H“内容类型:应用程序/json”\
-H“授权:*****”\
-d'{
“发件人\u批次\u标题”:{
“发件人批次id”:“批次25”,
“电子邮件主题”:“您已付款”
},
“项目”:[
{
“收件人类型”:“电子邮件”,
“金额”:{
“值”:0.99,
“货币”:“美元”
},
“接收者”:aaabbb@email.com",
“注意”:“谢谢”,
“发件人\项目\ id”:“项目\ 1”
},
{
“收件人类型”:“电子邮件”,
“金额”:{
“值”:0.90,
“货币”:“美元”
},
“接收者”:bbbb@gmail.com",
“注意”:“谢谢”,
“发件人\项目\ id”:“项目\ 2”
},
{
“收件人类型”:“电子邮件”,
“金额”:{
“价值”:2.00,
“货币”:“美元”
},
“接收者”:cccc@gmail.com",
“注意”:“谢谢”,
“发件人\项目\ id”:“项目\ 3”
}
]

}“
我刚得到解决方案。好吧,补充一句,我必须说贝宝应该提供适当的错误处理,让开发者知道每个错误背后的原因

错误是因为我在配置中设置了货币。测试开发人员帐户来自其他国家,货币代码设置为“USD”。 只需创建一个新帐户,并根据您在创建该测试开发人员帐户期间选择的国家/地区在配置中设置货币代码