苹果充值验证
来源:互联网 发布:虚拟网络社交的好处 编辑:程序博客网 时间:2024/05/01 19:43
AppStore增加了验证内购(In App Purchasement)的方法, 就是苹果提供一个url地址, 开发测试用:
https://sandbox.itunes.apple.com/verifyReceipt
产品用:
https://buy.itunes.apple.com/verifyReceipt
当购买成功时, 会得到苹果返回的一个收据(receipt), 苹果推荐的方法是将收据发给开发者的server, 由server像上述地址post http消息, 进行验证, 苹果将结果返回.到底是真正的购买还是虚假的购买.
1.应用发送请求到服务器,获取所有的Products ID列表
2.服务器返回Products ID列表
3.应用发送请求至App Store,获取Products的信息
4.App Store返回Product信息
5.应用使用这些信息,向用户显示一个Store界面
6.用户从Store中选择一项
7.应用向App Store发送payment请求
8.App Store处理该payment,并返回完成的transaction
9.应用从transaction中获取receipt数据,并将其发送给服务器
10.服务器记录receipt数据,并建立一个audit trail(审查跟踪)
11.服务器发送receipt数据到App Store,以验证是否合法的transaction
12.App Store解析receipt数据,并返回receipt,以及验证结果(是否合法)
13.服务器读取返回的receipt数据,并确定哪个用户已经完成购买
14.服务器交付已购买的内容至iOS应用
Purchase(购买)
当用户准备好购买product时,应用请求App Store来完成支付。App Store会创建一个持久化的transaction,即使用户退出和重新启动应用,也会继续地处理该支付交易。App Store将未决交易列表同步给应用,并且在任何交易状态变化时,递送更新信息给应用。
测试验证结果:
{ environment = Sandbox; receipt = { "adam_id" = 0; "app_item_id" = 0; "application_version" = "1.0.4.4"; "bundle_id" = "com.5ingame.gf"; "download_id" = 0; "in_app" = ( { "is_trial_period" = false; "original_purchase_date" = "2015-08-05 06:24:35 Etc/GMT"; "original_purchase_date_ms" = 1438755875000; "original_purchase_date_pst" = "2015-08-04 23:24:35 America/Los_Angeles"; "original_transaction_id" = 1000000166363893; "product_id" = "com.ysb.sanguo.one"; "purchase_date" = "2015-08-05 06:24:35 Etc/GMT"; "purchase_date_ms" = 1438755875000; "purchase_date_pst" = "2015-08-04 23:24:35 America/Los_Angeles"; quantity = 1; "transaction_id" = 1000000166363893; }, { "is_trial_period" = false; "original_purchase_date" = "2015-08-05 08:30:46 Etc/GMT"; "original_purchase_date_ms" = 1438763446000; "original_purchase_date_pst" = "2015-08-05 01:30:46 America/Los_Angeles"; "original_transaction_id" = 1000000166385461; "product_id" = "com.ysb.sanguo.two"; "purchase_date" = "2015-08-05 08:30:46 Etc/GMT"; "purchase_date_ms" = 1438763446000; "purchase_date_pst" = "2015-08-05 01:30:46 America/Los_Angeles"; quantity = 1; "transaction_id" = 1000000166385461; } ); "original_application_version" = "1.0"; "original_purchase_date" = "2013-08-01 07:00:00 Etc/GMT"; "original_purchase_date_ms" = 1375340400000; "original_purchase_date_pst" = "2013-08-01 00:00:00 America/Los_Angeles"; "receipt_type" = ProductionSandbox; "request_date" = "2015-08-05 08:32:00 Etc/GMT"; "request_date_ms" = 1438763520449; "request_date_pst" = "2015-08-05 01:32:00 America/Los_Angeles"; "version_external_identifier" = 0; }; status = 0;}
参考:
https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1
https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW1
http://blog.csdn.net/a351945755/article/details/22919533
http://www.cnblogs.com/dqshll/p/3731386.html
http://blog.csdn.net/azhou_hui/article/details/45154421
http://blog.csdn.net/imanapple/article/details/47174993
http://blog.csdn.net/pbymw8iwm/article/details/42167125
http://blog.csdn.net/wave_1102/article/details/9190897
- 苹果充值验证
- 关于去苹果服务器验证充值的一些看法
- 苹果手机指纹验证
- 苹果的验证接口文档
- 关于苹果purchase的验证
- 苹果内购二次验证 PHP代码
- 苹果内购二次验证 PHP代码
- 苹果IAP内付费二次验证代码
- 苹果下载app必须验证付款信息
- java 服务端验证苹果支付applepay账单
- 苹果内购支付 服务器端验证
- 身份证验证的非常好的方法。来自苹果专栏。
- 苹果应用商店支持人民币信用卡(已验证,有图有真相)
- Java实现的苹果IAP二次验证主要逻辑
- // 验证凭据,获取到苹果返回的交易凭据
- 苹果AppStore In-app purchase 内付费验证代码
- 验证Xcode真伪的方法,来自苹果官网
- 经验之谈—父子控制器(验证苹果的一句话)
- 一种UltraVNC反向连接方式的使用
- 讨厌的message_handler机制
- Statement和PreparedStatement理解
- ASP.NET Form身份验证 css和js无法正常显示问题
- Hibernate缓存机制
- 苹果充值验证
- BASH练习第三课
- CPU占用率100%解决方法
- HDU 1160
- 应届生求职个人简历不要太出格
- hdu 2717 Catch That Cow(搜索)
- 控件学习---UILabel--摘自培训资料
- 文章标题
- Highways【POJ--2485】【普里姆】【邻接矩阵】