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

苹果应用内支付,您已购买此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 函数的吧?

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