亿克云
亿克云
  • 发布:2023-05-17 16:15
  • 更新:2024-12-16 23:42
  • 阅读:322

【报Bug】unipay插件使用苹果支付报错Error: 支付单号(out_trade_no)不能为空

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: Alpha

HBuilderX版本号: 3.8.2

手机系统: iOS

手机系统版本号: iOS 14

手机厂商: 苹果

手机机型: iphone8

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

// 请求苹果支付
if (this.debug) console.log("正在请求苹果服务器", options.productid, res.out_trade_no);
let requestPaymentRes = await appleiap.requestPayment({
productid: options.productid,
username: res.out_trade_no
});
if (this.debug) console.log('用户支付成功', requestPaymentRes);
uni.showLoading({
title: '正在处理支付结果...'
});
// 云端请求苹果服务器验证票据
let verifyRes = await this.verifyReceiptFromAppleiap({
out_trade_no: requestPaymentRes.payment.username,
transaction_receipt: requestPaymentRes.transactionReceipt,
transaction_identifier: requestPaymentRes.transactionIdentifier
});
if (verifyRes.errCode === 0) {
// 完结订单
await appleiap.finishTransaction(requestPaymentRes);
uni.hideLoading();
this.paySuccess(verifyRes);
}

操作步骤:

同上

预期结果:

同上

实际结果:

同上

bug描述:

使用unipay插件进行苹果支付的时候,报错【Error: 支付单号(out_trade_no)不能为空】

/uni_modules/uni-pay/components/uni-pay/uni-pay.vue
这个页面中云端请求苹果服务器验证票据的时候报错

原因应该是验证票据的时候没有返回 requestPaymentRes.payment.username

2023-05-17 16:15 负责人:DCloud_uniCloud_VK 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

这个订单号是你自己在支付的时候传的, 你看下你发起支付的时候有没有传

  • 亿克云 (作者)

    有传username的,我补充了传的参数截图和支付成功后返回的参数截图

    2023-05-18 09:00

pxd

pxd - 加班好难

大哥,,能请教一下你吗,我是上个星期下载的最新支付插件uni-pay2,总是报 52002未配置正确的异步回调URL,我也是用的服务空间的地址

  • 亿克云 (作者)

    common/uni-config-center/uni-pay/config.js里配置uni-pay-co云对象,云函数URL化后的地址

    2023-05-19 09:19

  • pxd

    回复 e***@163.com: 我按文档都配制好了,以https开头的,公共模块也上传了,配制什么都弄好了,但是最后还是报这个错,

    2023-05-21 09:12

2***@qq.com

2***@qq.com

解决了么?也碰到了,用unipay的版本是2.2.3

要回复问题请先登录注册