从PayPal应用程序中检索所有付款信息

时间:2014-04-14 00:42:12

标签: python paypal

我最近一直试图编写一个Python脚本来自动获取PayPal应用程序所做的或接收的所有付款,这些付款与协调人帐户相关联。我使用app中的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)

不幸的是,没有打印(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 个答案:

答案 0 :(得分:5)

我还没有在任何地方看到过此文档,但在我看来,REST API只会返回通过新API创建的付款。

你可能不得不使用更加丑陋的Classic API,它在https://github.com/duointeractive/paypal-python有一个不错的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的fork,并将NVP响应解析为python词典列表。仍在进行中,但您可以在https://github.com/jlev/paypal-python查看。欢迎补丁和拉动请求!