从PayPal应用中提取所有支付信息
我最近在尝试写一个Python脚本,目的是自动获取与一个PayPal应用相关的所有付款记录,包括收到和发送的款项。我使用的是这个应用的client_id和client_secret,还有官方的Python API库。
import paypalrestsdk
import logging
logging.basicConfig(level=logging.INFO)
paypalrestsdk.configure({
"mode": "sandbox",
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET})
payment_history = paypalrestsdk.Payment.all({"count": 10})
print(payment_history.payments)
不过,结果是打印出来的是None(payment_history返回的是NoneType)。日志显示
INFO:root:Request[POST]: https://api.sandbox.paypal.com/v1/oauth2/token
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): api.sandbox.paypal.com
INFO:root:Response[200]: OK, Duration: 0.937975s.
INFO:root:Request[GET]: https://api.sandbox.paypal.com/v1/payments/payment?count=10
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): api.sandbox.paypal.com
INFO:root:Response[200]: OK, Duration: 1.19636s.
None
所以client_id和client_secret在登录时应该是没问题的。在PayPal的沙盒账户里,我已经从这个账户收到了款项,也发送了款项,但这些都没有输出。
那么,我是不是哪里做错了呢?这是我第一次使用PayPal的API,所以任何帮助都会很有用!
1 个回答
5
我没有在任何地方看到这个文档,但我觉得这个REST API只会返回通过新API创建的支付记录。
你可能需要使用一个看起来比较复杂的经典API,它有一个不错的Python客户端,地址是 https://github.com/duointeractive/paypal-python,你可以这样使用:
from paypal import PayPalInterface
paypal_api = PayPalInterface(API_USERNAME="xxx_xxx_apix.xxx.com",
API_PASSWORD="xxxxxxxxxx",
API_SIGNATURE="xxxxxxxxxxxxxxxxxxxxxxxx",
DEBUG_LEVEL=0,
HTTP_TIMEOUT=30)
transactions = paypal_api._call('TransactionSearch',
STARTDATE='2014-01-01T00:00:00Z',
STATUS="Success")
我正在做一个分支,目的是把TransactionSearch封装成一个快捷的方法,并且把NVP的响应解析成Python字典的列表。这个项目还在进行中,但你可以在 https://github.com/jlev/paypal-python 查看一下。欢迎提交补丁和请求!