苹果支付

苹果支付


苹果支付流程:
1. 用户在App客户端点击购买
2. 确认购买项目
3. App后台生成内购订单
4. AppStore账户验证
5. 苹果服务器验证用户请求并从用户帐号扣款
6. App向用户返回购买成功收据
7. App把收据发送到自己的服务器后台
8. 后台接收App发送的收据信息去苹果服务器验证收据真伪
9. 验证成功后返回给App客户端相应结果并展示给用户

注意:
1. 测试服务器: https://sandbox.itunes.apple.com/verifyReceipt
正式服务器:https://buy.itunes.apple.com/verifyReceipt
2. App提交审核时使用的是测试服务器,不然审核失败
3. 测试时需要开一个苹果账号测试,不能使用正常的苹果ID支付
4. 充值成功后的回调会重复调用,需要判断是否重复调用验证
5. 为确保验证成功,需要判断客户端传过来的是什么环境的数据,在重新验证

客户端返回数据(缩简版):
{"receipt-data" : "MIIXjgYJKoZIhvcNAQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkCCA7rTMZTo1pkIg=="}

服务器返回数据:
{"status" : 0, "receipt" : { ... },"latest_receipt" : "(base-64 encoded receipt)","latest_receipt_info" : { ... } }

Status状态码:
21000 App Store不能读取你提供的JSON对象
21002 receipt-data域的数据有问题
21003 receipt无法通过验证
21004 提供的shared secret不匹配你账号中的shared secret
21005 receipt服务器当前不可用
21006 receipt合法,但是订阅已过期。服务器接收到这个状态码时,receipt数据仍然会解码并一起发送
21007 receipt是Sandbox receipt,但却发送至生产系统的验证服务
21008 receipt是生产receipt,但却发送至Sandbox环境的验证服务



你可能感兴趣的:(支付&退款)