我最近一直在尝试编写一个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)
不幸的是,没有打印(支付历史返回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的sandbox帐户上,我已经收到和发送了来自服务商的付款,但都不是输出。
也就是说,有什么我做错了吗?这是我第一次使用PayPal API,所以任何帮助都会很好!
最佳答案
我在任何地方都没有看到这个文档,但在我看来,REST API只返回通过新API创建的付款。
您可能需要使用更难看的经典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")
我正在研究一个fork,它将TransactionSearch封装在一个快捷方法中,并将NVP响应解析为一个python字典列表。仍在进行中,但您可以在https://github.com/jlev/paypal-python查看。补丁和拉请求欢迎!
关于python - 从PayPal应用程序检索所有付款信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23050232/