V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
WngShhng
V2EX  ›  程序员

想抄作业了,有没有 Apple 内购的后端设计方案

  •  
  •   WngShhng · 2023-05-06 10:27:12 +08:00 · 3477 次点击
    这是一个创建于 600 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究苹果的支付,大概了解了一些文档和接口,想参考下比较成熟的 Apple 内购的后端设计方案

    主要是想了解,如何进行后端验证、处理订阅和退单的问题

    13 条回复    2024-02-27 10:36:48 +08:00
    guxingke
        1
    guxingke  
       2023-05-06 11:16:41 +08:00
    1. 没有包袱请务必使用 StoreKit 2
    2. 务必请客户端下单时传递后端订单号到 Apple Server
    3. 没有 3
    WngShhng
        2
    WngShhng  
    OP
       2023-05-06 11:36:44 +08:00
    @guxingke 请问我看到 Apple 的文档里有 Server API 和服务器接受通知,获取下单信息是客户端下单之后上传给自己服务器的还是通过接受来自 Apple 的通知获取的?还有我看很多验证方案是基于 verifyResult 的 API 和收据数据来判断的,如果基于 StoreKit 2 是不是就不应该真么做了?
    nightsky
        3
    nightsky  
       2023-05-06 12:31:40 +08:00
    最好是客户端上传字符串,后端主动去苹果查询,
    苹果的推送很蛋疼,有时候可能收不到
    WngShhng
        4
    WngShhng  
    OP
       2023-05-06 12:47:54 +08:00
    @nightsky 上传的字符串是指收据吗?
    nightsky
        5
    nightsky  
       2023-05-06 14:59:56 +08:00
    是啊,支付完成后,不是可以获得两个超级长的字符串么。把 server 的发给服务器,服务器验证去请求苹果那边验证,至于退款问题,可以手动去苹果后台看。这样就非常简单了,适合小规模场景
    codeMore
        6
    codeMore  
       2023-05-06 16:58:05 +08:00
    1 、receipt 去苹果验单后一定要验证 bundle_id 、购买时间、查询 transaction_id 是否退款等
    2 、订阅的话,走 server notification v2 吧,关联内部订单的话使用 appAccountToken 做透传吧
    WngShhng
        7
    WngShhng  
    OP
       2023-05-06 17:41:39 +08:00
    我现在疑问比较多的是,官方文档里给了很多接口,还有原始的一些接口,但是如何整合这些接口,如果自己设计的话,估计会踩一些坑
    rockyliang
        8
    rockyliang  
       2023-05-06 23:07:27 +08:00
    调用苹果的收据验证(verifyReceipt)接口时,要注意判断 in_app 字段,这个数组字段有可能会是空的,这种情况不要给用户发货
    milukun
        9
    milukun  
       2023-05-07 20:30:33 +08:00
    不想费劲,可以直接使用 Revenuecat 托管,基本达到他的付费标准也是做的不错了,出点小钱也没什么
    WngShhng
        10
    WngShhng  
    OP
       2023-05-08 00:15:15 +08:00 via iPhone
    @milukun 那还是要学一下的,我有一套自己的付费系统,已经支持谷歌的了,这次希望把苹果的内购整合进去。
    WngShhng
        11
    WngShhng  
    OP
       2023-05-11 19:37:20 +08:00
    求人不如求己,先整理了一波文档并调试通过了接口。我梳理的文章:
    https://juejin.cn/post/7231858374828048441
    WngShhng
        12
    WngShhng  
    OP
       2023-07-17 20:53:23 +08:00
    服务器整体的设计方案: https://juejin.cn/post/7256692501113258041
    acnes
        13
    acnes  
       303 天前
    @WngShhng appAccountToken 是使用我们 app uid 生成 uuid 还是用 order_id 生成 uuid ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1070 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:20 · PVG 03:20 · LAX 11:20 · JFK 14:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.