苹果 iap 自动续费怎么实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
awanganddong
V2EX    程序员

苹果 iap 自动续费怎么实现

  •  1
     
  •   awanganddong 2022-12-24 14:20:16 +08:00 1500 次点击
    这是一个创建于 1040 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.之前产品时消耗性的,直接在 in_app 里边获取 tran_id ,然后做好记录就可以了。

    现在产品类型变成订阅类型了。

    网上查看实现方式有三种, 1.客户端触发 2.server-to-server 3.定时获取票据的信息,判断上一个支付的情况。

    这是一个相关参考 https://juejin.cn/post/7049626884765646884

    想问下其中需要注意什么

    awanganddong
        1
    awanganddong  
    OP
       2022-12-26 09:55:53 +08:00
    awanganddong
        2
    awanganddong  
    OP
       2022-12-30 11:56:05 +08:00
    今天测试的过程中,发现了一个问题。
    苹果的内购是以苹果账号为纬度的。也就是一个苹果账号可以与 app 的任意一个账号做关联。

    这样就会有一个问题,original_transaction_id 会定位在不同的用户账号上,
    ios15 增加了这个字段,可以解决这个问题。

    https://developer.apple.com/documentation/appstorereceipts/app_store_receipt_data_types
    但是我们开发的 ios 13 版本,所以暂时用不到。

    所以推送这种方式+定时任务查询票据这种方式我们暂时没有用。

    其中定时任务查询票据,就是请求历史票据,获取 latest_receipt ,然后通过 latest_receipt 获取最新的票据信息。
    awanganddong
        3
    awanganddong  
    OP
       2022-12-30 12:00:29 +08:00
    如果是客户端上报票据,这时候就设计到取数据的模式了。
    in_app VS latest_receipt_info

    根据我个人理解和测试,如果是消耗性小票直接 in_app 模式就可以获取。
    如果是订阅型商品,可以取 latest_receipt_info 。

    还有一种取法就是获取 latest_receipt ,再次请求苹果 server 。然后去 in_app 取数据,获取到的数据和 latest_receipt_info
    是一致的。
    awanganddong
        4
    awanganddong  
    OP
       2022-12-30 12:04:16 +08:00
    记录用户的 transaction_id+original_transaction_id 。
    purchase_date_ms/expires_date_ms

    这两个字段是判断订阅的开始时间+结束时间。

    我这边操作是循环 latest_receipt_info ,然后把上边几个记录保存到数据库,然后给用户加会员时间。
    如果已保存,就跳过。
    awanganddong
        5
    awanganddong  
    OP
       2022-12-30 12:05:14 +08:00
    用户的退订问题,现在正在测试。
    awanganddong
        6
    awanganddong  
    OP
       2022-12-30 18:13:08 +08:00
    刚才又实现了新的一版,
    思路是这样的。
    首先从 lastet_receipt_info 中根据这个字段 purchase_date_ms 倒序, 从中取出最新的一个订单。
    然后根据 expires_date_ms 这个字段来更新用户的订阅到期时间。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3837 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 05:16 PVG 13:16 LAX 22:16 JFK 01:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86