我最近一直试图编写一个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,所以任何帮助都会很棒!
答案 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查看。欢迎补丁和拉动请求!