2***@qq.com
2***@qq.com
  • 发布:2026-04-24 14:43
  • 更新:2026-04-24 14:44
  • 阅读:189

【报Bug】paypal支付到uni.requestPayment无任何响应和回调

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: Android

手机系统版本号: Android 14

手机厂商: vivo

手机机型: iqoo neo9s pro+

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

handleOnlinePayment(provider, orderId, params, callback) {
uni.requestPayment({
provider: provider,
// #ifndef MP-WEIXIN
orderInfo: params,
// #endif

  // #ifdef MP-WEIXIN  
  timeStamp: '' + params.timeStamp,  
  nonceStr: params.nonceStr,  
  package: params.package,  
  signType: params.signType,  
  paySign: params.sign,  
  // #endif  
  success: function (res) {  
    uni.showToast({ title: i18n.t('common.pay_success'), icon: 'succcess' });  
    if (typeof callback == "function") {  
      callback(1)  
    }  
  },  
  fail: function (res) {  
    uni.showToast({title: i18n.t('common.pay_no'), icon: 'error'});  
    // uni.showModal({content: JSON.stringify(res) + JSON.stringify(params)});  
    if (typeof callback == "function") {  
      callback(0)  
    }  
  },  
  complete: function (res) {  
    console.log(res);  
  }  
});  

}

操作步骤:
  case 'pp_standard_v2':  
    this.handleOnlinePayment('paypal', orderId, params, callback)  
    break;  

支付code为pp_standard_v2 进入handleOnlinePayment 然后uni.requestPayment无响应

预期结果:

调起paypal支付

实际结果:

页面转圈几秒后转圈消失 无任何其他响应

bug描述:

paypal支付走到handleOnlinePayment这个方法里了 打印参数页都是对的 但是uni.requestPayment无任何响应和回调 连报错都没有 用的是自定义的基座包。paypal配置和params如图

2026-04-24 14:43 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

从DCloud官方技术支持的角度对该bug反馈进行评审如下:

反馈完整性评价:

该反馈基本涵盖了必要的信息字段,包括运行环境(HBuilderX 5.07、Android 16、Vue2)、问题现象(无响应无回调)及代码片段。但存在以下关键信息缺失,导致无法直接定位问题:

  1. manifest.json配置缺失:未提供App模块配置中PayPal支付的具体配置,特别是returnURL_android和returnURL_ios的设置。根据PayPal支付配置文档,这两个参数必须与PayPal开发者中心配置的值一致,否则无法调起支付。

  2. orderInfo结构不明确:代码中直接将params作为orderInfo传入,但未展示params的具体结构。根据PayPal支付文档,PayPal支付要求orderInfo必须包含clientId、orderId、userAction、currency、environment等特定字段,而非通用的支付参数格式。

  3. 调试方式未说明:未确认是否使用了自定义基座。根据App支付模块说明,支付模块参数配置需提交云端打包后才能生效,真机运行调试时必须使用自定义基座,标准基座无法调起支付。

问题分析:

该问题大概率属于参数配置不当或调试方式错误,而非uni-app框架bug:

  1. 参数格式错误:从代码看,用户可能将后端返回的通用订单参数直接传入,但PayPal要求的orderInfo是包含特定字段的JSON对象(需包含clientId、orderId等),与支付宝/微信的字符串orderInfo不同。

  2. Manifest配置遗漏:PayPal支付必须在manifest.json中配置returnURL_android和returnURL_ios,且必须与PayPal开发者后台配置的return URL完全一致。

  3. 自定义基座问题:如果在标准基座中运行,支付模块不会生效,表现为无任何响应。

建议补充信息:

请补充以下内容以便进一步排查:

  • manifest.json中App模块配置 -> Payment(支付) -> PayPal支付的具体配置截图或文本
  • 实际传入的params参数结构(是否包含clientId、orderId、currency、environment字段)
  • 是否使用了自定义基座运行
  • PayPal开发者中心配置的return URL与manifest中填写的是否一致

临时排查建议:

  1. 确认orderInfo参数结构符合以下要求:

    {  
    "clientId": "PayPal开发者后台获取的客户端ID",  
    "orderId": "服务器生成的PayPal订单ID",  
    "userAction": "continue", // 或 "paynow"  
    "currency": "USD",        // 币种  
    "environment": "sandbox"  // 沙盒:sandbox 正式:live  
    }

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

  2. 检查manifest.json中已正确配置returnURL_android和returnURL_ios,且与PayPal开发者中心配置的return URL完全一致。

  3. 确认使用自定义基座进行调试(标准基座不支持支付模块)。

内容为 AI 生成,仅供参考

要回复问题请先登录或注册