获取 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,将值存储在一个变量中,用于表中