VerifyReceipt弃用后,App Store Server Notification v2与用户关联问询
App Store Server Notification v2 关联内部用户的解决方案
由于verifyReceipt已被弃用,改用App Store Server Notification v2后,核心逻辑是必须提前建立交易ID与内部用户的绑定关系,不能省略用户首次上报交易的步骤,具体方法如下:
核心绑定流程(替代原verifyReceipt逻辑)
- 用户在App内完成订阅购买后,App通过StoreKit回调拿到交易的
transactionId和originalTransactionId - App将这两个交易ID,加上你的内部用户JWT(用于验证用户身份),一起发送到你的服务器
- 服务器调用App Store Server API的
Get Transaction Info接口,传入transactionId验证交易的合法性(替代原verifyReceipt的验证逻辑) - 验证通过后,将
originalTransactionId(订阅的唯一标识,续期时不会变)与内部用户ID绑定,存入数据库
处理Server Notification v2消息
当收到App Store的v2通知时,payload里会包含originalTransactionId字段,直接用这个ID查询你的数据库,就能关联到对应的内部用户。
额外补充
- 可以在购买时给交易设置
appAccountToken(由你生成的、与内部用户ID绑定的字符串),后续通过App Store Server API的Get All Subscriptions for a User接口,用这个token批量同步用户的订阅状态,作为上报失败的兜底方案 - 所有Server Notification v2的消息都带有签名,服务器要先验证签名的合法性,再处理业务逻辑,防止伪造通知
内容的提问来源于stack exchange,提问作者mike927
相关产品推荐
相关产品推荐

