我最近一直在尝试编写一个 Python 脚本来自动获取与服务商帐户绑定(bind)的 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)
不幸的是,没有打印( 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,所以任何帮助都会很棒!
最佳答案
我还没有在任何地方看到过此记录,但在我看来,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/