Apple Pay-----应用内购物支付

      本人也是在开发时才知道,针对于虚拟金币,游戏币,等一些不是实物的商品除了一些第三方支付外,可以使用苹果应用内的支付。这种支付方式无论是消费者,还是开发者都很方便,与其他的付款方式相比之下,这种内购方式消费的是绑定iTunes帐号的银行卡,并且卖出商品的收益将会与苹果做一个三七分成!下面是开发步骤:

1,首先需要在开发者中心创建一个应用:(如果不需要上线的话,随便创建一个就行)

Apple Pay-----应用内购物支付_第1张图片

 完善协议,税务,和银行业务,填写内容大致为:

姓名,邮箱,标题,电话号码,传真(可选)

CNAPS Code,这个号有的地方说是联行号,可以理解为每个银行支行的唯一ID吧,这个可以打电话问你银行卡开户行,就是他们那的一个唯一12位的标示号码,也可以通过苹果的Look up Transit Number去搜索。

银行账户号码  帐户持有人姓名

银行账户的货币,人命币是CNY

个人或组织名字

注册地-中国

完成之后如下图显示

Apple Pay-----应用内购物支付_第2张图片

2,在上一个步骤完成的基础上,进入到我的APP

Apple Pay-----应用内购物支付_第3张图片

在创建的APP上面进入到我的『功能』

在选择类型上面,一般选择消耗性,用户需要在每次消费完都可以购买(用户每次下载时都必须进行购买。一次性服务通常属于消耗型项目,例如钓鱼 App 中的鱼饵),总共有一下几种消费类型,

Apple Pay-----应用内购物支付_第4张图片


Apple Pay-----应用内购物支付_第5张图片

这里就是我们可以通过内购支付的虚拟商品。

3,测试需要在用户与职能中添加沙盒测试人员,如下图所示

Apple Pay-----应用内购物支付_第6张图片
Apple Pay-----应用内购物支付_第7张图片

完成以上在开发者中心的配置,我们就可以直接写程序了。

(1)引入#import框架,遵循SKPaymentTransactionObserver,SKProductsRequestDelegate这两个代理

(2)首先要监听购买的结果,[[SKPaymentQueue defaultQueue] addTransactionObserver:self];并且查询是否允许内付费

//查询是否允许内付费

if ([SKPaymentQueue canMakePayments]) {

// 执行下面提到的第5步:

[self getProductInfowithprotectId:self.pro_id];

} else {

NSLog(@"失败,用户禁止应用内付费购买.");

}

(3)

Apple Pay-----应用内购物支付_第8张图片

SKProductsRequest * request = [[SKProductsRequest alloc] initWithProductIdentifiers:set];向苹果商店发送请求,查询我们在商店里配置的内购商品

(4)

Apple Pay-----应用内购物支付_第9张图片
response.products


response.products里面存的就是我们在商店配置的内购商品,是一个存放商品信息的数组,我们可以根据myProduct的元素个数判断是否获取到了商品信息,SKPayment * payment = [SKPayment paymentWithProduct:myProduct[0]];发送商品支付请求

[[SKPaymentQueue defaultQueue] addPayment:payment];

(5)代理方法---判断交易状态

Apple Pay-----应用内购物支付_第10张图片

(6)如果交易完成,需要向自己的服务器进行验证,这是苹果为了保证产品支付过程的安全,我们可以自己向苹果进行验证,也可以自己的后台与服务器进行配置,与自己的服务器进行验证,如果验证成功,后台进行虚拟商品数量增加操作。否则虚拟商品交易失败。

Apple Pay-----应用内购物支付_第11张图片

(7)这里是跟自己的服务器进行购买验证,[self reloadAcount];刷新界面虚拟商品的数量。

Apple Pay-----应用内购物支付_第12张图片

你可能感兴趣的:(Apple Pay-----应用内购物支付)