5***@qq.com
5***@qq.com
  • 发布:2022-01-25 19:37
  • 更新:2022-11-24 10:25
  • 阅读:5931

苹果内购收据验证一直返回21002或21003

分类:uniCloud

前段调用苹果支付成功,回调中的数据格式如下
{
"payment": {
"productid": "com.xxx.Listen1",
"quantity": "1",
"username": "1643110362201b8f1e"
},
"transactionDate": "2022-01-25 19:33:00",
"transactionIdentifier": "1000000956068787",
"transactionReceipt": "xxx",
"transactionState": "1"
}

后台unicloud调用接口
let res = await unipayIns.verifyReceipt({
receiptData:event.data.receipt.transactionReceipt
})
对收据进行验证,但是apple那边一直返回21002和21003错误吗?请问我这种使用方式有什么问题吗?
能帮助解决的可以留言添加我的微信,愿意提供100元红包酬谢

2022-01-25 19:37 负责人:DCloud_uni-ad_HDX 分享
已邀请:
5***@qq.com

5***@qq.com (作者)

问题已经解决:官方的函数有问题,改成以下方式可以解决
let url = "https://sandbox.itunes.apple.com/verifyReceipt"
let receiptData = {};
receiptData['receipt-data'] = event.data.receipt.transactionReceipt;
let post_data = JSON.stringify(receiptData);
let checkReceipt = await uniCloud.httpclient.request(url, {
method: 'POST',
content: post_data,
dataType: 'json'
})
console.log("苹果支付收据校验")
console.log(checkReceipt.data)

  • a15965734368

    官方的函数确实有问题,写的不咋滴..........

    2022-09-02 10:19

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

检查苹果开发者中心配置 是否需要密码字段

该问题目前已经被锁定, 无法添加新回复