ios内购 - IOS服务器存在不稳定现象,如何对延迟到账的receipt进行补单

 囬憶啲伈情_542_256_427 发布于 2022-10-26 18:22

1.苹果服务器存在不稳定现象,客户端在用户支付后往往没办法马上拿到receipt,通常会在苹果服务器稳定之后并且用户再次登录时,苹果服务器再推送之前没有推送的receipt

2.系统架构逻辑如下,客户端存在一个队列,存储平台订单信息和receipt,平台订单与receipt一一对应。
正常的支付流程,用户创建平台订单,支付,客户端获得苹果的receipt,将平台订单号与receipt共同发回给平台服务器,发货。
当苹果服务器不稳定时,用户创建平台订单,支付,客户端无法获得苹果的receipt,阻塞队列,阻止用户创建第二笔平台订单。待苹果服务器稳定后,用户重新登录,客户端获得苹果的receipt,将平台订单号与receipt共同发回给平台服务器,发货。
但以上有两个缺陷,当用户卸载客户端后会丢失平台订单信息,阻塞操作影响用户充值

3.综上,无论是取消阻塞操作还是丢失平台订单信息后,都需要从苹果那里拿到与平台订单相关的信息,问,如何获取?

扩展阅读
①receipt相关知识
②解压后的receipt demo

{
  "receipt": {
    "original_purchase_date_pst": "2017-03-31 04:04:09 America/Los_Angeles",
    "unique_identifier": "5a972c9ff76b8d07d5f9c45accc4438a68123456",
    "original_transaction_id": "330000215123456",
    "bvrs": "2.4",
    "app_item_id": "1126123456",
    "transaction_id": "330100215123456",
    "quantity": "1",
    "unique_vendor_identifier": "1776055D-0F28-498F-A872-683A8D123456",
    "product_id": "N3",
    "item_id": "1147123456",
    "version_external_identifier": "819123456",
    "bid": "com.demo.test.bid",
    "purchase_date_ms": "1490958249000",
    "purchase_date": "2017-03-31 11:04:09 Etc/GMT",
    "purchase_date_pst": "2017-03-31 04:04:09 America/Los_Angeles",
    "original_purchase_date": "2017-03-31 11:04:09 Etc/GMT",
    "original_purchase_date_ms": "1490958249000"
  },
  "status": 0
}
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有