1

我有一个支持 Turbo 的 Rails 应用和一个Turbo Native iOS 应用。

在 web 应用程序上,您可以通过 Stripe 购买订阅,因此我需要启用 iOS 应用程序用户在应用程序内购买的能力。

到目前为止,我已经进行了以下设置:

  • 在原生应用中,当用户点击“购买”按钮时,将正确的支付请求发送到苹果的服务器,并弹出“购买”界面

  • 来自 Apple 的服务器通知设置为,当订阅已购买、续订或使用收据数据取消时,我的 Rails 应用程序中的端点会被 ping 通。现在,我只是将 JSON 响应打印到我的日志中。

将我的网络应用程序中的唯一用户 ID 连接到 Apple 购买的最佳方式是什么?

目前发生的情况是我的 Sandbox iCloud 用户被标记为已订阅,但该信息未连接到应用程序的登录用户,因此他们无权访问付费层功能。

这是理想的工作流程:

  • 用户在应用程序中点击“购买”并确认付款

  • 当我从 Apple 收到成功的服务器通知时,我可以将该用户标记为已付费并为他们创建订阅对象,存储原始交易 ID 和其他相关订阅信息

  • 购买完成后,用户将被重定向到应用程序内的另一个页面/视图

  • 当 Apple 进一步发送服务器通知时,我可以将原始事务 ID 与我的 Rails 应用程序数据库中的订阅相匹配,并根据需要更新用户的访问/订阅。

主要是将付款与我的 Rails 应用后端中的用户联系起来。

有没有人成功建立这样的工作流程?

我很想得到一些关于如何处理它的指导。

非常感谢!

4

1 回答 1

1

这是我会做的工作流程

  1. 登录用户进行应用内购买
  2. 购买收据通过请求发送到后端
  3. 后端验证此收据并将信息保存到数据库(即 user_id、transaction_id 等)
  4. 您可以收听 AppStore 服务器通知并获得有关退款、取消、更新的通知......对于每个事件,您可以在数据库中搜索 transaction_id 以获取相应的用户
于 2021-06-14T12:15:53.490 回答