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

Python Telegram Bot集成PayPal REST API:支付跳转失败问题求助

问题解决方案

一、Telegram支付按钮无法跳转PayPal页面的排查点

  • 检查Telegram支付按钮的链接生成逻辑:必须确保创建PayPal订单后,正确提取响应里的批准链接(approval_url),并将这个链接作为InlineKeyboardButton的url参数返回给用户。如果只生成了访问令牌但没拿到这个跳转链接,用户点击按钮自然无法进入支付页。
  • 确认PayPal订单创建API调用正确性:调用/v2/checkout/orders接口创建订单时,响应的links数组里会有一个rel值为approve的链接,这就是用户需要跳转的支付地址。如果代码没提取这个链接或提取错误,直接导致跳转失败。
  • 验证Telegram按钮类型:必须使用InlineKeyboardButton并设置url字段,不能用回调按钮等其他类型,否则无法触发外部跳转。
  • 检查访问令牌有效性:虽然数据库生成了令牌,但要确保调用订单接口时用的是有效且具备支付权限的访问令牌(注意区分沙箱/生产环境的client_id和client_secret)。

二、PayPal return_url和cancel_url的配置方式

PayPal REST API的这两个地址不需要在后台全局配置,而是在创建订单时通过API参数直接传入,示例代码如下:

order_payload = {
    "intent": "CAPTURE",
    "purchase_units": [
        {
            "amount": {
                "currency_code": "USD",
                "value": "10.00"
            }
        }
    ],
    "application_context": {
        "return_url": "https://your-domain.com/payment-success",
        "cancel_url": "https://your-domain.com/payment-cancel",
        "brand_name": "Your Bot Brand"
    }
}

如果是针对旧版标准支付(非REST API),后台配置路径为:登录PayPal商家后台 → 右上角设置图标 → 选择「网站支付」 → 找到「自动返回」和「取消返回」选项配置,但REST API场景更推荐通过API传参,灵活性更高。

额外建议

  • 开启PayPal API日志:记录所有请求和响应内容,方便排查订单创建是否成功、approval_url是否正确返回。
  • 优先用沙箱环境测试:先在PayPal Sandbox环境验证逻辑,没问题再切换到生产环境,避免真实资金交易风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:57:16