1、google的普通商品与订阅商品校验的api不一样,注意查看官方文档中的返回数据结构说明。
2、google普通商品校验返回,没有实际支付价格及支付货币类型,如果要统计的话,可由客户端上传上来;订阅商品的校验返回有这两个数据。ios返回里没有这两个数据。
3、ios校验时,如果有订阅商品,那么所有票据的校验都要传 password 参数;传 exclude-old-transactions 参数并设置为true,可以只返回最后一个订阅数据(减少返回的数据量)。
4、ios普通商品校验返回数据时,注意检查 bundle_id 是否是当前app的,防刷。
5、google/ios校验返回后,都需要把交易号(ios:transaction_id;google:orderId)记录下来,表示这一笔支付已完成了,防刷。
6、ios校验的返回,在in_app数组里可能有多笔支付(未正确销单或有订阅的),处理的时候需要遍历一下,找到正确的支付数据。
7、订阅免费试用:如果设置了免费试用,校验返回里有相应标记(ios:is_trial_period=true;google:paymentState=2),处理发货时注意免费试用的天数。
8、设置了免费试用的,用户试用过后需要有记录,防止用户切换不同的支付账号刷试用。
9、google订阅如果设置有宽限期的,校验返回paymentState=0,但有效期往后延了大概12个小时,服务器处理时,只需要把订阅扣款截止时间往后延就好了,不要处理发货。
10、ios/google支付时,最好不要做服务器预下单逻辑(创建自己的一个order)。客