在 iOS 11 App Store 中,已经支持搜索结果中显示内购了,那你知道为 App 添加内购商品要注意些什么吗?今天这篇文章我们就和大家详细的讲一下添加内购的流程,主要内容分为以下几个方面:
协议、税务和银行业务信息填写
内购商品的添加
添加沙盒测试账号
内购代码的具体实现
内购的注意事项
一、协议、税务和银行业务信息填写
1.协议、税务和银行业务信息填写的入口
2.选择申请合同类型
进入协议、税务和银行业务页面后,会有 3 种合同类型,如果你之前没有主动申请过去合同,那么一般你现在激活的合同只有 iOS Free Application 一种。
页面内容分为两块:
Request Contracts (申请合同)
Contracts In Effect (已生效合同)
合同类型分为 3 种:
iOS Free Application (免费应用合同)
iOS Paid Application (付费应用合同)
iAd App NetNetwork (广告合同)
这篇文章我们主要讲的是付费应用合同的申请流程。
3.申请 iOS Paid Application 合同 (协议、税务和银行业务 3 个都要填写)
4.Contact Info (填写联系方式)
如果你没有添加过联系人,你需要通过 Add New Contact 按钮来添加一个新的联系人,然后指定联系人的职务。如下:
Senior Management:高管
Financial:财务
Technical:技术支持
Legal:法务
Marketing:市场推广
如果你是独立开发者,可以全部填你自己一个人。
5.填写银行信息
选择你的银行账户,如果你没有,点击旁边的 Add Bank Account 添加一个账户。下面是添加一个账户的流程。
①选择银行所在的国家
②填写银行标识 CNAPS Code
如果你不知道 CNAPS Code 是多少,可以百度搜 CNAPS Code 来查询,查询时会根据 3 个关键信息来查询,如下:
Bank Name:银行的英文名称(不能是拼音)
City:银行所在的城市英文名称(中国的城市用拼音)
Postal Code:邮编
然后在下面就会出来备选的银行,选择正确的银行后,点击 next,进入下一步。
③确认银行信息
④填写银行账号信息
Bank Account Number:银行账号
Confirm Bank Account Number:再次输入银行账号
Account Holder Name:持卡人姓名,中文名用拼写,名在前,姓在后
Bank Account Currency:货币类型,一般国内的开发者选择 CNY
⑤确认所有信息
6.填写税务信息 (这个内容比较多)
①税务信息分 3 种:
U.S Tax Forms:美国税务
Australia Tax Forms:澳大利亚税务
Canada Tax Forms:加拿大税务
②一堆条约
我选择的是 U.S Tax Forms,选择后会问你两个问题:
第 1 个问题询问你是否是美国居民,有没有美国伙伴关系或者美国公司,如果没有直接选择 No。
第 2 个问题询问你有没有在美国的商业性活动,没有也直接选 No。
③然后填写你的税务信息,包括以下几点:
Individual or Organization Name:个人或者组织名称
Country of incorporation: 所在国家
Type of Beneficial Owner:受益方式,独立开发者选个人
Permanent Residence:居住地址
Mailing address:邮寄地址
Name of Person Making this Declaration:声明人
Title:头衔
④打钩
⑤澳大利亚的不要管了
⑥加拿大的也不用管了
7.填写完成
你填写完所有资料后,合同状态就会变成 Processing,大概 24 小时内就会有结果。
二、内购商品的添加
1.创建内购商品
2.选择内购类型
①消耗型商品
类似游戏中的钻石,还有现在某些 App 中的货币,比如斗鱼里的鱼丸、映客里的映票。会被消耗的,要选择消耗型商品。
注意:大多数的消耗型商品都是需要登录的,因为需要在数据库存余额。 在登录之前,你最好不要让用户看到商品,有可能会因为这个原因被拒 (大家都说看运气) 。小编推荐大家加一下这个群:594353854 群里已经几百人了 大家遇到啥问题都会在里面交流!而且免费分享零基础入门资料 iOS开发资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!
②非消耗型商品
无法被消耗的商品,比如上文提到的视频课程,一次购买,就应该永久可以观看。
注意:当你使用非消耗型商品时,你需要添加一个恢复购买的按钮。 这个常见于各种游戏中,其实知道这个规定以后还是挺好理解的, 非消耗型商品是不可被消耗的,一次购买终身使用的。
③订阅类型商品
如果你的公司是外包公司,有订阅类型商品的 App,一定要用客户的账号提交审核!因为当 App 中有过订阅类型商品,注意是有过,创建过再删除也算,这个 App 无法被转移账号。
注意:使用或曾经使用过订阅型商品的 App 无法转移
三、添加沙盒测试账号
1.添加沙盒测试的入口
2.添加沙盒测试账号
3.具体的测试账号信息填写
四、内购代码的具体实现
我创建了一个购买金币的内购控制器 ApplePayCIOViewController。 在这里, 向大家贴出.m 的详细代码。
1.内购的流程详细讲解
①用户先拿到购买产品的单子
②缴费、盖章
③把已盖章的单子传到自己的服务器,验证是否支付成功
④根据服务器返回的信息做具体的处理
2.代码
①先导入 StoreKit.framework 库
②创建 ApplePayCIOViewController,遵守协议<SKPaymentTransactionObserver,SKProductsRequestDelegate>
③ApplePayCIOViewController.m 代码
向下滑动查看多图
五、内购的注意事项
1.一般发生于首次提交 App 或添加新商品。当你的 App 通过审核以后,你发现在生产环境下获取不到商品,这是因为 App 虽然过审核了,但是内购商品还没有正式添加到苹果的服务器里,耐心等待一段时间就可以啦~
-
代码中的_currentProId 所填写的是你的购买项目的的 ID,这个和第二步创建的内购的 productID 要一致;本例中是 123。
-
在监听购买结果后,一定要调用 [[SKPaymentQueue defaultQueue] finishTransaction:tran] ;来允许你从支付队列中移除交易。
-
沙盒环境测试 App Store 内购流程的时候,请使用没越狱的设备。
-
请务必使用真机来测试,一切以真机为准。
-
项目的 Bundle identifier 需要与您申请 App ID 时填写的 Bundle ID 一致,不然会无法请求到商品信息。
-
真机测试的时候,一定要退出原来的账号,才能用沙盒测试账号
-
二次验证,请注意区分宏, 测试用沙盒验证,App Store 审核的时候也使用的是沙盒购买,所以验证购买凭证的时候需要判断返回 Status Code 决定是否去沙盒进行二次验证,为了线上用户的使用,验证的顺序肯定是先验证正式环境,此时若返回值为 21007,就需要去沙盒二次验证,因为此购买的是在沙盒进行的。
9.您的应用是否处于等待开发者发布 (Pending Developer Release) 状态?等待发布状态的 IAP 是无法测试的。
10.您的内购项目是否是最近才新建的,或者进行了更改?内购项目需要一段时间才能反应到所有服务器上,这个过程一般是一两小时,也可能再长一些达到若干小时。
11.您在 iTC 中 Contracts, Tax, and Banking Information 项目中是否有还没有设置或者过期了的项目?不完整的财务信息无法进行内购测试。
12.您是在越狱设备上进行内购测试么? 越狱设备不能用于正常内购 ,您需要重装或者寻找一台没有越狱的设备。
13.您的应用是否是被拒状态 (Rejected) 或自己拒绝 (Developer Rejected) 了? 被拒绝状态的应用的话对应还未通过的内购项目也会一起被拒 ,因此您需要重新将 IAP 项目设为 Cleared for Sale。
14.您使用的测试账号是否是美国区账号?虽然不是一定需要,但是 鉴于其他地区的测试账号经常抽风,加上美国区账号一直很稳定,因此强烈建议使用美国区账号 。正常情况下 IAP 不需要进行信用卡绑定和其他信息填写,如果你遇到了这种情况,可以试试删除这个测试账号再新建一个其他地区的。
15.您是否将设备上原来的 App 删除了,并重新进行了安装?如果是,记得在安装前做一下 Clean 和 Clean Build Folder。
16.您的 plist 中的 Bundle identifier 的内容是否和您的 App ID 一致。
不能再详细指南到此结束,快去给你的 App 设置内购吧~
如有侵权请联系小编删除!