本人也是在开发时才知道,针对于虚拟金币,游戏币,等一些不是实物的商品除了一些第三方支付外,可以使用苹果应用内的支付。这种支付方式无论是消费者,还是开发者都很方便,与其他的付款方式相比之下,这种内购方式消费的是绑定iTunes帐号的银行卡,并且卖出商品的收益将会与苹果做一个三七分成!下面是开发步骤:
1,首先需要在开发者中心创建一个应用:(如果不需要上线的话,随便创建一个就行)
![](https://img.haomeiwen.com/i2646923/c3cd9f4ab7adf7cc.png)
完善协议,税务,和银行业务,填写内容大致为:
姓名,邮箱,标题,电话号码,传真(可选)
CNAPS Code,这个号有的地方说是联行号,可以理解为每个银行支行的唯一ID吧,这个可以打电话问你银行卡开户行,就是他们那的一个唯一12位的标示号码,也可以通过苹果的Look up Transit Number去搜索。
银行账户号码 帐户持有人姓名
银行账户的货币,人命币是CNY
个人或组织名字
注册地-中国
完成之后如下图显示
![](https://img.haomeiwen.com/i2646923/7164eefea76b67b7.png)
2,在上一个步骤完成的基础上,进入到我的APP
![](https://img.haomeiwen.com/i2646923/12bf8385eba29eb2.png)
在创建的APP上面进入到我的『功能』
![](https://img.haomeiwen.com/i2646923/57cf33d9aa4e4271.png)
在选择类型上面,一般选择消耗性,用户需要在每次消费完都可以购买(用户每次下载时都必须进行购买。一次性服务通常属于消耗型项目,例如钓鱼 App 中的鱼饵),总共有一下几种消费类型,
![](https://img.haomeiwen.com/i2646923/a0d8c903c5e93054.png)
![](https://img.haomeiwen.com/i2646923/7c4a620314aa471f.png)
这里就是我们可以通过内购支付的虚拟商品。
3,测试需要在用户与职能中添加沙盒测试人员,如下图所示
![](https://img.haomeiwen.com/i2646923/10c9158eb8403078.png)
![](https://img.haomeiwen.com/i2646923/61c15e0250a6b9a9.png)
完成以上在开发者中心的配置,我们就可以直接写程序了。
(1)引入#import<StoreKit/StoreKit.h>框架,遵循SKPaymentTransactionObserver,SKProductsRequestDelegate这两个代理
(2)首先要监听购买的结果,[[SKPaymentQueue defaultQueue] addTransactionObserver:self];并且查询是否允许内付费
//查询是否允许内付费
if ([SKPaymentQueue canMakePayments]) {
// 执行下面提到的第5步:
[self getProductInfowithprotectId:self.pro_id];
} else {
NSLog(@"失败,用户禁止应用内付费购买.");
}
(3)
![](https://img.haomeiwen.com/i2646923/3df68ca97ca72890.png)
SKProductsRequest * request = [[SKProductsRequest alloc] initWithProductIdentifiers:set];向苹果商店发送请求,查询我们在商店里配置的内购商品
(4)
![](https://img.haomeiwen.com/i2646923/1d5b7c12b12febe6.png)
response.products里面存的就是我们在商店配置的内购商品,是一个存放商品信息的数组,我们可以根据myProduct的元素个数判断是否获取到了商品信息,SKPayment * payment = [SKPayment paymentWithProduct:myProduct[0]];发送商品支付请求
[[SKPaymentQueue defaultQueue] addPayment:payment];
(5)代理方法---判断交易状态
![](https://img.haomeiwen.com/i2646923/871182ef8a166ecd.png)
(6)如果交易完成,需要向自己的服务器进行验证,这是苹果为了保证产品支付过程的安全,我们可以自己向苹果进行验证,也可以自己的后台与服务器进行配置,与自己的服务器进行验证,如果验证成功,后台进行虚拟商品数量增加操作。否则虚拟商品交易失败。
![](https://img.haomeiwen.com/i2646923/9fab872cb2fe4d1e.png)
(7)这里是跟自己的服务器进行购买验证,[self reloadAcount];刷新界面虚拟商品的数量。
![](https://img.haomeiwen.com/i2646923/9bce891b77d0f29e.png)
![](https://img.haomeiwen.com/i2646923/ca97aa95fbf9b449.png)
网友评论