导航:首页 > APP软件 > 苹果服务器掉单

苹果服务器掉单

发布时间:2025-02-23 13:10:13

1. IOS 内购掉单问题

向服务器请求OrderID,向ios发起内购时传递给payment:

在付款成功时applicationUsername会被ios返回,取出orderid连同收据传给服务器。

问题就出在那个orderid上,不知道为什么总有用户的orderID为null,导致充值失败。

多方查找后确定原因如下:

目前暂无替代方案。

另:App处于审核状态时,该测试版本无法进行内购操作是正常的,不必惊慌。

2. swift 内购

a. 消耗型商品:只可以使用一次的产品,使用以后即失效,必须再次购买。
示例:小说App购买的书币书券。
b. 非消耗型商品:只需购买一次,不会过时或随着使用而减小的产品。
示例:游戏 App 的赛道。
c. 自动续期订阅:容许用户在固定时间段内购买动态内容的产品。除非用户选择取消,不然此类订阅会自动续期。
示例:每个月订阅提供流媒体服务的 App。
d. 非续期订阅:容许用户购买有时限性服务的产品。此 App 内购买项目的内容能够是静态的。此类订阅不会自动续期。
示例:为期一年的已归档文章目录订阅。

a. 客户端向Appstore请求购买产品(假设产品信息已经取得),Appstore验证产品成功后,从用户的Apple账户余额中扣费。
b. Appstore向客户端返回一段receipt-data,里面记录了本次交易的证书和签名信息。
c. 客户端向我们可以信任的服务器提供receipt-data
d. 服务器对receipt-data进行一次base64编码
e. 把编码后的receipt-data发往itunes.appstore进行验证
f. itunes.appstore返回验证结果给服务器
g. 服务器对商品购买状态以及商品类型,向客户端发放相应的道具与推送数据更新通知

a. 验证苹果自动续费的合理性: 是否是切换了账号了,是否是同一个账号下有2个不同的appleid订阅(订阅类型会进行此校验,消耗性直接走b)
b. 后台校验成功后,创建后台订单
c. 订单生成后,传入proctID发起购买请求,苹果服务器验证产品成功后,从用户的Apple账户余额中扣费并向客户端返回凭证(receipt-data)
d. 客户端拿到凭证后,向服务器发起凭证校验,服务器拿到凭证进行一次base64编码,发到苹果服务器进行校验并返回结果给服务器。
e. 服务器对商品购买状态以及商品类型,向客户端发放相应的道具与推送数据更新通知

解决掉单问题前,我们要先简单把从支付请求开始到结束的步骤按照顺序排列出来,然后分析每一个步骤可能存在的调单情况。

调单的处理可分为在拿到交易订单之后调用 IPA 创建一个 IPA 交易,并且添加到支付队列,收到回调前跟收到回调后。
在创建后台订单时,此时后台会把订单信息回调,并将其已模型的形式存入Keychain中(存入Keychain中数据不会因卸载app等操作丢失)

通过校验队列中的transactions进行判断,没有的话就是没有发起支付请求,那么此时需要重新发起支付的请求。

通过校验队列中的transactions进行判断,有的话就是已经发起支付请求但是没有收到回调,此时需要做SKPaymentQueue.default().restoreCompletedTransactions()(恢复已经完成的 交易)

首先将transactionId和凭证更新到已存入的Keychain中,通过校验Keychain中的transactionId是否存在,来确定是否已经收到回调,此时需要拿着存入Keychain中的凭证等到后台去校验。

阅读全文

与苹果服务器掉单相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接