获取 PayPal 余额(GetBalance API)

Posted

技术标签:

【中文标题】获取 PayPal 余额(GetBalance API)【英文标题】:Getting PayPal Balance (GetBalance API) 【发布时间】:2015-11-01 01:25:12 【问题描述】:

我已经在 PayPal 文档中搜索了两个小时,但无法找到答案,甚至搜索了 Google。

在这里检查: https://developer.paypal.com/docs/api/#api-operations

我已经在 Maven (REST API) 中添加了 PayPal 的 SDK,现在我不确定该怎么做。

我想使用 PayPal API(所有货币)获取帐户余额。

【问题讨论】:

我建议改用这个PayPal php SDK。它使用 Classic API,但它具有功能齐全且随时可用的示例/模板。当然,GetBalance 是最简单的调用,并且示例本身可以为您提供开箱即用的功能。 Click here for a look at the GetBalance sample. 啊,开枪。没关系,我刚刚看到你在使用 Java。 我会看看,反正我是 PHP 开发人员。 :) 【参考方案1】:

GetBalance 来自 Classsic API,目前尚未包含在 REST API 中,但您可以像这样直接使用 HTTPRequest 实现 NVP 调用,

API 端点:

https://api-3t.paypal.com/nvp

POST 请求负载:

USER=seller_api1.paypal.com
&PWD=56A9R4JPVFPMER2X
&SIGNATURE=AFcWxV21C7fd0v3bYYYRCps-s-rl31AociN2kspFBnMbzOGg6NdiC7ZXtg
&VERSION=109.0
&METHOD=GetBalance
&RETURNALLCURRENCIES=1

回复:

L_AMT0=265.17
L_CURRENCYCODE0=USD
TIMESTAMP=2015-08-09T14:21:25Z
CORRELATIONID=802b0b6666022
ACK=Success
VERSION=109.0
BUILD=000000

您也可以使用您喜欢的编程语言获取Classic API SDKs,这次选择“Merchant”SDK。

我的示例 PHP 代码可帮助您理解流程,

<?php
$version = "124";
$user = "API UserName";
$pwd = "API Password";
$signature = "API Signature";
$API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp";

$resArray = CallGetBalance ( $API_Endpoint, $version, $user, $pwd, $signature );
$ack = strtoupper ( $resArray ["ACK"] );
if ($ack == "SUCCESS") 
    $balance = urldecode ( $resArray ["L_AMT0"] );
    $currency = urldecode ( $resArray ["L_CURRENCYCODE0"] );
    echo "Account Balance: " . $balance . " " . $currency;



function CallGetBalance($API_Endpoint, $version, $user, $pwd, $signature) 
    // setting the curl parameters.
    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $API_Endpoint );
    curl_setopt ( $ch, CURLOPT_VERBOSE, 1 );
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_POST, 1 );

    // NVPRequest for submitting to server
    $nvpreq = "METHOD=GetBalance" . "&RETURNALLCURRENCIES=1" . "&VERSION=" . $version . "&PWD=" . $pwd . "&USER=" . $user . "&SIGNATURE=" . $signature;
    curl_setopt ( $ch, CURLOPT_POSTFIELDS, $nvpreq );
    $response = curl_exec ( $ch );

    $nvpResArray = deformatNVP ( $response );

    curl_close ( $ch );

    return $nvpResArray;


/*
 * This function will take NVPString and convert it to an Associative Array and it will decode the response. It is usefull to search for a particular key and displaying arrays. @nvpstr is NVPString. @nvpArray is Associative Array.
 */
function deformatNVP($nvpstr) 
    $intial = 0;
    $nvpArray = array ();

    while ( strlen ( $nvpstr ) ) 
        // postion of Key
        $keypos = strpos ( $nvpstr, '=' );
        // position of value
        $valuepos = strpos ( $nvpstr, '&' ) ? strpos ( $nvpstr, '&' ) : strlen ( $nvpstr );

        /* getting the Key and Value values and storing in a Associative Array */
        $keyval = substr ( $nvpstr, $intial, $keypos );
        $valval = substr ( $nvpstr, $keypos + 1, $valuepos - $keypos - 1 );
        // decoding the respose
        $nvpArray [urldecode ( $keyval )] = urldecode ( $valval );
        $nvpstr = substr ( $nvpstr, $valuepos + 1, strlen ( $nvpstr ) );
    
    return $nvpArray;


?>

【讨论】:

网站上的签名是他们的 API 密钥吗? 对了,登陆PayPal账户,在“profile”标签下找到“API access” PHP 示例并不能真正帮助在 Java 中需要帮助的人,您能否发布一些资源供 Java 人使用? 您可以在此处获取使用您首选编程语言的 SDK:paypal.github.io/sdk 根据您的要求选择“商家”SDK 足够好,但我期待一些 Java 的东西,因为问题是关于 Java 的。【参考方案2】:

因此,对于其他在这个问题上苦苦挣扎的人来说,文档的“事务搜索”部分下有一个 API 端点,这根本没有意义。

GET /v1/reporting/balances

您将获得一份余额列表,其中包含您在帐户中维护的每种货币。

在此处查看文档:

https://developer.paypal.com/docs/api/transaction-search/v1/

【讨论】:

这仅适用于 PayPal 合作伙伴网络中的用户。 “使用交易搜索 API 获取 PayPal 账户的交易历史记录。要代表第三方使用 API,您必须是 PayPal 合作伙伴网络的一部分。请联系您的合作伙伴经理了解后续步骤。注册在合作伙伴计划中,请参阅与 PayPal 合作。有关 API 的更多信息,请参阅交易搜索 API 集成指南。 - Transaction API documentation【参考方案3】:

此答案适用于那些正在寻找 Node js 的 REST API 或没有任何 SDK 的人。

GetBalance(获取特定帐户的余额)

文档链接:https://developer.paypal.com/docs/limited-release/balance-accounts/v2/api/

REST API [GET]:https://api.sandbox.paypal.com/v2/wallet/balance-accounts

请求:

curl -v -X GET https://api.sandbox.paypal.com/v2/wallet/balance-accounts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"

回复:


  "total_available": 
    "currency_code": "USD",
    "value": "2800"
  ,
  "total_reserved": 
    "currency_code": "USD",
    "value": "1920"
  ,
  "balance_accounts": [
    
      "available": 
        "currency_code": "USD",
        "value": "1000.00"
      ,
      "reserved": 
        "currency_code": "USD",
        "value": "00.00"
      ,
      "links": []
    ,
    
      "available": 
        "currency_code": "AUD",
        "value": "1000"
      ,
      "reserved": 
        "currency_code": "AUD",
        "value": "00.00"
      
    ,
    
      "available": 
        "currency_code": "CAD",
        "value": "1000"
      ,
      "reserved": 
        "currency_code": "CAD",
        "value": "100"
      ,
      "links": []
    ,
    
      "available": 
        "currency_code": "GBP",
        "value": "1000"
      ,
      "reserved": 
        "currency_code": "GBP",
        "value": "1000"
      ,
      "links": []
    
  ],
  "links": [
    
      "rel": "self",
      "href": "https://api.sandbox.paypal.com/v2/wallets/balance-accounts"
    
  ]

【讨论】:

这不起作用。它说权限被拒绝,我在创建可能提供余额查询权限的应用程序时找不到任何选项。 同样,我也找不到@VikasSinghal,你现在找到什么了吗? 此 API 仅适用于 PayPal 合作伙伴,例如银行。这就是为什么我们有permission denied 错误

以上是关于获取 PayPal 余额(GetBalance API)的主要内容,如果未能解决你的问题,请参考以下文章

web3.js--getBalance到web3.utils.fromWei,将值存储在一个变量中,用于表中

是否有一个等效的 REST API 函数来获取 Paypal 帐户的余额,类似于 NVP 获取余额 API? [关闭]

C# PayPal API 获取余额

获取Paypal账户余额

Web3 JS 库(& Metamask),获取代币余额

以太坊系节点余额精度处理