j***@163.com
j***@163.com
  • 发布:2019-06-06 21:18
  • 更新:2021-04-20 22:30
  • 阅读:36616

苹果应用内支付,您已购买此App内购买项目。此项目将免费恢复

分类:uni-app

我在苹果里定义了消耗型项目,然后我第一次购买了,之后再次购买的时候就提示"您已购买此App内购买项目。此项目将免费恢复。",但是我明明是消耗型项目啊,后面又试了几次购买都是一样的错误提示,我从网上搜了一下,说是appstore认为购买流程未完成,需要调finishTransaction函数,让appstore知道你这单已经结束了,然后再购买才能正常。请问一下uni-app有没有相关的处理方法呢。
下面是搜索到的信息
问题的关键就是把上次未成功处理的transaction处理完,那么怎么获得上次未处理完的transaction呢,可以通过[[SKPaymentQueue defaultQueue] transactions]获取,我自己是在用户再次购买行为的时候去做的,当用户再次购买的时候,先检查是否有之前未完成的交易,如果有就调用一下finishTransaction。

2019-06-06 21:18 负责人:无 分享
已邀请:
j***@163.com

j***@163.com (作者) - 天天向上

还有苹果支付成功后返回的数据是{"errMsg":"requestPayment:ok"},怎么没有苹果支付完成后receipt-data,正常是苹果支付成功后会返回一段receipt-data数据,然后我再把这个数据传到服务器做验证。receipt-data这个数据要怎么取呢?

j***@163.com

j***@163.com (作者) - 天天向上

顶一下,有人知道可以说一下吗

j***@163.com

j***@163.com (作者) - 天天向上

再顶~~~

程咬金3斧头

程咬金3斧头

同问 消耗类型项目怎么处理

j***@163.com

j***@163.com (作者) - 天天向上

已经解决https://ext.dcloud.net.cn/plugin?id=521

ererere

ererere

你好,我在使用你的插件时遇到了问题,我无法获取新一笔支付的结果
如果不使用你的插件

                    success: (e) => {  
                        console.log(222);  
                        uni.showModal({  
                            content: "成功支付!",  
                            showCancel: false  
                        })

这个是正常执行的
但是,如果前面使用你的插件关闭订单,这个无法执行,从而无法发送苹果的票据到我的接口进行验证,因为他压根不执行
还希望解答下,我的qq 208322001五

                var zdIospay = uni.requireNativePlugin('ZD-Iospay');  
                var transactionDateresult = zdIospay.ZdIospayFunctionSync(productId);  
                console.log(transactionDateresult);  
                var transactionDate = eval("("+transactionDateresult+")");  
                console.log(transactionDate);  
                console.log(111);  

uni.requestPayment({  
                    provider: 'appleiap',  
                    orderInfo: {  
                        productid: this.array[this.radio]['productid']  
                    },  
                    success: (e) => {  
                        console.log(222);  
                        uni.showModal({  
                            content: "成功支付!",  
                            showCancel: false  
                        })  
                    },  
                    fail: (e) => {  
                        uni.showModal({  
                            content: "支付失败,原因为: " + e.errMsg,  
                            showCancel: false  
                        })  
                    },  
                    complete: () => {  
                        console.log("payment结束")  
                        this.loading = false;  
                    }  
                })
90后菜鸟

90后菜鸟 - 90后

支付成功后 这段有时候会无返回值知道是怎么回事吗

uni.requestPayment({  
    provider: 'appleiap',  
    orderInfo: {  
        productid: productid  
    },  
    success(res) {  
        console.log('------支付返回值------')  
        console.log(JSON.stringify(res))  
    },fail(res){  
        console.log('-------fail------')  
        console.log(res)  
    }  
})
风云杭州

风云杭州

顶一下,遇到同样问题,是非续期订阅。
楼主有不用第三方插件的解决办法吗?

这个问题貌似是偶尔出现的

风云杭州

风云杭州

uniapp 执行uni.requestPayment后,success 函数 自动会执行 finishTransaction 函数的吧?

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