从PayPal应用中提取所有支付信息

2 投票
1 回答
2783 浏览
提问于 2025-04-18 02:37

我最近在尝试写一个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 查看一下。欢迎提交补丁和请求!

撰写回答