星野千子
星野千子
  • 发布:2026-02-02 16:48
  • 更新:2026-02-02 17:43
  • 阅读:15

【报Bug】paypal支付 跳转网页支付完成但是success或者fail没有执行

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11, version 25H2

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: redmi k30 pro

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
uni.requestPayment({  
    "provider": "paypal",  
    "orderInfo": orderInfo,  
    success: function (res) {  
    console.log("支付成功------->:", res);  
    var rawdata = JSON.parse(res.rawdata);  
    console.log("orderId:" + rawdata.orderId);  

    },  
        fail: function (err) {  
    console.log('fail:' + JSON.stringify(err));  
}  
});

操作步骤:

app下单 >支付 >打开网页 >支付完成 >返回app

预期结果:

在App端发起支付完成后,返回订单id或者通知

实际结果:

没有任何提示或者结果

bug描述:

paypal支付 跳转网页支付完成但是success或者fail没有执行,服务端已经扣款完成并且获取到了支付结果,但是跳转回来uni.requestPayment里的success和fail 都没有执行,打的是自定义包

2026-02-02 16:48 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

您好,根据您反馈的现象「PayPal 网页支付完成后 App 端 success / fail 无回调」,结合官方文档与常见案例,99 % 的情况都属于配置或基座缺失导致,并非框架 bug。请按下面 5 个步骤逐项自查,基本都能解决:

  1. 升级并重新制作自定义基座
    • HBuilderX 请直接升级到最新正式版(≥ 4.87)。
    • 升级后务必重新制作自定义调试基座,否则旧基座里并未包含最新支付模块。

  2. 确认 manifest.json 已勾选 PayPal
    路径:manifest.json → App 模块配置 → Payment(支付)勾选 PayPal 支付,并填写

    • returnURL_android(Android 用)
    • returnURL_ios(iOS 用)
      这两个地址必须与 PayPal 开发者后台配置的 Return URL 完全一致,否则支付完成后无法回到 App,也就收不到回调。
      参考截图与说明:PayPal 配置文档
  3. orderInfo 必须包含的关键字段

    const orderInfo = {  
     clientId: '你的 PayPal ClientId',  
     orderId: '服务端生成的 PayPal OrderId',  
     environment: 'sandbox',   // 或 'live'  
     currency: 'USD',  
     userAction: 'continue'    // 或 'paynow'  
    };  

    缺少任一字段都会导致 SDK 直接返回失败或无响应。

  4. 确认返回 App 的方式
    PayPal 网页支付完成后,必须通过 URL Scheme 回到 App。

    • 在 manifest.json → App → SDK 配置 → UrlSchemes 中填写与 returnURL_android / returnURL_ios 匹配的 scheme,例如 myapp://paypal/return
    • 测试时可在系统浏览器地址栏直接输入 myapp://paypal/return 验证是否能唤起 App;若唤不起,请先修正 scheme 配置。
  5. 调试技巧
    • 真机运行请使用自定义基座;标准基座未包含 PayPal 模块。
    • 打开 vConsole,观察是否有 "payment:fail module not found" 等报错;若有,说明 Payment 模块未正确打入,请回到第 1、2 步重新检查。
    • 若仍无回调,请把 vConsole 日志、orderInfo 完整内容、manifest.json 相关片段贴出来,再提交工单进一步排查。

按以上步骤操作后,绝大多数开发者都能正常收到 success / fail 回调。如仍有问题,请补充上述信息后继续反馈,感谢!

内容为 AI 生成,仅供参考
星野千子

星野千子 (作者)

AI回复的那些都弄了,都能打开支付跟自动返回app了,跳转应该是没问题的

要回复问题请先登录注册