应用内支付

本文介绍如何在App中实现内购功能,并通过StoreKit框架处理购买流程。重点讲解了苹果审核期间如何验证沙盒环境下的收据,以及如何区分沙盒与正式环境的收据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • The App ID string contains two parts separated by a period

    • an App ID Prefix that is defined as your Team ID by default
    • an App ID Suffix that is defined as a Bundle ID search string.
    • Each part of an App ID has different and important uses for your app

      App ID Description: Payment
      App ID Prefix : 9A2N11353N (Team ID)
      App ID Suffix : com.51iniu.Payment
      Bundle ID : com.51iniu.Payment
      SKU : com.51iniu.Payment

      SKU:您 App 专有的 ID, 此 ID 不会在 App Store 中显示。
      (项目编号,苹果对SKU没有特别的要求,只要不和其它APP的SKU冲突就行)

  • You implement in-app purchase in your app using the Store Kit framework.

    • 苹果在审核应用时,只会在沙盒(sandbox)环境购买,其产生的购买凭证,也只能连接苹果的测试验证服务器。但是审核的应用又是连接的线上服务器,那应该判断苹果正式验证服务器的返回状态码,如果 是21007,则再一次连接测试服务器进行验证即可。

    • 两种识别沙盒环境下收据的方法
      1.根据收据字段 environment = sandbox。
      2.根据收据验证接口返回的状态码
      如果status=21007,则表示当前的收据为沙盒环境下收据。

    • 返回的状态码的详细说明
      https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Introduction.html

状态码返回信息
21000App Store无法读取你提供的JSON数据
21002收据数据不符合格式
21003收据无法被验证
21004你提供的共享密钥和账户的共享密钥不一致
21005收据服务器当前不可用
21006收据是有效的,但订阅服务已经过期。当收到这个信息时,解码后的收据信息也包含在返回内容中
21007收据信息是测试用(sandbox),但却被发送到产品环境中验证
21008收据信息是产品环境中使用,但却被发送到测试环境中验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值