You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python桌面应用创建PayPal付款请求并追踪进度

解决方案:用Python创建PayPal个人付款请求并追踪进度

PayPal REST SDK主要面向商家交易场景(比如在线结账),确实不支持创建个人用户网页端的那种标准付款请求(Request Money)。你可以通过PayPal Classic NVP API来实现需求,具体方法如下:

一、使用Classic API创建付款请求

Classic API的RequestMoney操作专门用于生成个人付款请求,步骤如下:

1. 获取Classic API凭证

登录PayPal开发者平台,在你的REST应用详情页中找到「Classic API凭证」,复制对应的用户名、密码和签名(沙箱与生产环境的凭证需分开使用)。

2. Python请求示例代码

用requests库直接构造POST请求即可:

import requests
from urllib.parse import parse_qs

# 配置凭证与环境
PAYPAL_USERNAME = "你的Classic API用户名"
PAYPAL_PASSWORD = "你的Classic API密码"
PAYPAL_SIGNATURE = "你的Classic API签名"
PAYPAL_ENV = "sandbox"  # 生产环境改为"production"

# 构造付款请求参数
request_params = {
    "METHOD": "RequestMoney",
    "VERSION": "124.0",
    "EMAIL": "收款方的PayPal邮箱",
    "CURRENCYCODE": "USD",  # 支持CNY、EUR等标准货币代码
    "AMT": "50.00",  # 请求金额,字符串格式
    "SUBJECT": "朋友聚餐分摊费用",
    "NOTE": "2024年5月15日聚餐费用"
}

# 发送请求
api_url = f"https://api-3t.{PAYPAL_ENV}.paypal.com/nvp"
response = requests.post(api_url, auth=(PAYPAL_USERNAME, PAYPAL_PASSWORD), data=request_params)
response_data = parse_qs(response.text)

# 处理响应
if response_data.get("ACK") == ["Success"]:
    request_id = response_data["REQUESTID"][0]
    print(f"付款请求创建成功,请求ID: {request_id}")
else:
    error_msg = response_data.get("L_LONGMESSAGE0", ["未知错误"])[0]
    print(f"创建失败: {error_msg}")

二、追踪付款请求进度

用Classic API的GetTransactionDetails操作,传入创建时拿到的REQUESTID即可查询状态:

def get_request_status(request_id):
    status_params = {
        "METHOD": "GetTransactionDetails",
        "VERSION": "124.0",
        "TRANSACTIONID": request_id
    }
    response = requests.post(api_url, auth=(PAYPAL_USERNAME, PAYPAL_PASSWORD), data=status_params)
    response_data = parse_qs(response.text)
    
    if response_data.get("ACK") == ["Success"]:
        payment_status = response_data["PAYMENTSTATUS"][0]
        print(f"当前状态: {payment_status}")
        # 可额外获取付款时间、付款方信息等字段
        return payment_status
    else:
        error_msg = response_data.get("L_LONGMESSAGE0", ["未知错误"])[0]
        print(f"查询失败: {error_msg}")
        return None

# 使用示例
# get_request_status("你的请求ID")

常见付款状态说明:

  • Completed:付款已完成
  • Pending:付款待确认
  • Denied:付款请求被拒绝
  • Cancelled:付款请求已取消

注意事项

  • 测试时必须使用PayPal沙箱账号,避免产生真实交易
  • 个人PayPal账号默认支持Classic API,无需额外申请权限
  • 确保参数格式正确(比如金额为字符串类型,货币代码符合PayPal规范)

内容的提问来源于stack exchange,提问作者Plero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:55:20