IAP 支付回调不保证每次都有业务方的订单号

2018-07-06 10:31:45 +08:00
 SayNight

首先我了解的 IAP 支付流程:

1.客户端请求商品订单
2.获取 IAP 商品 id
3.IAP 商品查询
4.用户支付(向苹果下单参数中有我们的业务订单号)
5.苹果检查到支付成功或者失败后,会通过代理,回调支付的结果(通知客户端)
6.客户端发送订单号+支付凭证到服务器
7.服务器验证凭证是否合法
8.返回结果到客户端
9.客户端业务逻辑处理

现在问题是:一个用户在我们的 app 内,同一个 sku 只能有一笔支付中的订单。

诉求:用户可以下 N 笔支付订单(可以是同一个商品也可以是不同商品)。

想实现的流程:苹果回调客户端时,客户端提取苹果回调参数中的业务订单号和支付凭证,然后送往服务端,服务端验证支付结果后,根据客户端传回来的业务订单号,找到对应的订单,并更新对应状态。

疑惑:针对同一笔支付操作,4 中的业务订单号,在 5 中回调参数中会不带回来吗?(包括重试回调)

我是服务端开发,询问 IOS 的同事,说苹果回调不保证我们支付下单时传过去的业务订单号,每次都能带回来,因为苹果通知客户端、客户端通知服务端及两个通知节点之间 app 关闭、手机关机等情况。所以苹果那边应该有回调重试的吧? IOS 那边说回调的时候,他们拿不到业务订单号,请问各位是怎么解决这个问题的?

1275 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/468580

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX