iOS应用内置付费 ris'In App Purchase总结

移动开发 iOS
虽然Apple的官方文档已经对In App Purhcase这一特性做了比较详尽的解释,但就某些细节方面还是需要编程人员进行尝试和推敲,今天我就为大家就In App Purchase做一剖析,以此抛砖引玉。

In App Purchase属于iPhone SDK3.0的新特性,用于在应用程序中购买付费道具,增加新功能,订阅杂志。是应用程序除了植入广告外的另一种取得收益的方式。

虽然Apple的官方文档已经对In App Purhcase这一特性做了比较详尽的解释,但就某些细节方面还是需要编程人员进行尝试和推敲,今天我就为大家就In App Purchase做一剖析,以此抛砖引玉。

In App Purchase的基本流程

1.登陆你的Apple开发者帐号(http://developer.apple.com/iphone

2.创建一个新的Apple ID或是选用一个已存在的Apple ID,点击Config,启用In App Purchase功能。

3.创建develop(用于沙盒测试)和distribution(用于发布)的profile,创建时选择刚才创建的Apple ID。

4.编写你的应用程序(如何在应用程序中实现可以参考in app purchase的官方文档)

5.将你的应用提交到App Store.如果你的应用程序还没有完成只是需要测试,你可以在upload选项卡中选择upload your binary later,或者在提交后self reject你的应用,以免你的应用进入Apple的审核阶段。

6. 现在你可以为你的应用程序添加需要购买的东西了,在iTunes Connect中选择Manage Your In App Purchases,然后选择你的应用程序,开始添加你的购买物,Product ID是以后进行purchase操作的唯一识别,相当于主键,而且一旦添加后即使删除了以后也不允许再次使用这一ID(官方建议使用域名的命名模式 com.companyname.appname.productid)。Type共有三种选择:Non-Consumable(永久消费) Subscription(订阅) Consumable(可重复购买)。请勾选Cleared for Sale,如果不勾选,在测试时会返回invaild product id。填写好完整的商品信息后如果你的应用程序还未发布需要测试请选择submint with binary,否则请勾选submit now。

7.如果你需要测试你的purchase功能,upload你的应用程序,绑定商品到你的应用程序。

8.安装你的debug版本的应用程序到你的测试机器上进行测试。

In App Purchase的注意点

1.确保你所用来创建Profile的Apple ID启用了In App Purchase功能。

2.确保你的Apple ID的identifier中没有*。

3.确保你的bundle ID和你的Apple ID的identifier一致。

4.确保你的product ID是唯一的。

5.确保你在应用程序中所请求的product ID与你在iTunes Connect里添加的一致。

6.确保你勾选了Clear for Sale。

7.在测试的时候你可能需要等待你的商品添加入Apple的测试沙盒,这个过程可能需要几个小时。

8.在你第一次上传应用程序的时候,确保勾选了需要绑定至该应用程序的商品列表。

9.确保你是在SDK3.0以上编写的。

ECPurchase的使用

ECPurchase是我封装了purchase的内在逻辑,调用简单方便,如果你不想根据文档再自己写purchase功能,那么ECPurchase适合你。

1.在App Delegate中添加Observer

  1. [[ECPurchase shared] addTransactionObserver]; 

2.设置ECPurchase的product delegate(产品列表代理),transaction delegate(购买结果代理),验证方式

  1. [[ECPurchase shared] setProductDelegate:self]; 
  2.  
  3. [[ECPurchase shared] setTransactionDelegate:self]; 
  4.  
  5. [[ECPurchase shared] setVerifyRecepitMode:ECVerifyRecepitModeiPhone]; 

3.请求商品列表

  1. [[ECPurchase shared] requestProductData:identifiers]; 

实现代理函数绘制UI

  1. -(void)didReceivedProducts:(NSArray *)products; 

4.购买商品

  1. [[ECPurchase shared] addPayment:proIdentifier]; 

5.确认结果

如果不需要收据认证实现代理函数

  1. -(void)didFailedTransaction:(NSString *)proIdentifier; 
  2.  
  3. -(void)didRestoreTransaction:(NSString *)proIdentifier; 
  4.  
  5. -(void)didCompleteTransaction:(NSString *)proIdentifier; 

否则实现代理函数

  1. -(void)didCompleteTransactionAndVerifySucceed:(NSString *)proIdentifier; 
  2.  
  3. -(void)didCompleteTransactionAndVerifyFailed:(NSString *)proIdentifier withError:(NSString *)error; 

源码下载地址: http://down.51cto.com/data/637142

责任编辑:闫佳明 来源: cocoachina
相关推荐

2013-09-09 14:26:25

iOS应用内置付费In-App Purc

2013-09-09 13:57:27

iOS应用内置付费In-App Purc

2013-09-09 15:49:44

iOS应用内置付费IAP设置总结

2013-09-05 15:12:09

iOS应用内置付费In-App Purc

2013-09-09 16:37:48

iOS应用添加内置收费In App Purc

2013-09-09 15:05:12

iOS应用内置付费IAP完全攻略

2013-09-09 17:23:29

iOS应用内置付费IAP

2013-08-06 15:10:18

iOS免费应用移动应用市场移动应用盈利

2013-04-12 15:53:39

2011-11-16 15:47:04

AdobeAIRiOS应用

2012-11-20 10:22:34

App Store应用商店

2010-11-04 09:57:38

In App PurcAndroid 2.3Android

2011-11-16 15:08:30

AdobeAIRiOS应用

2011-06-01 14:50:55

iOS谷歌

2013-05-17 10:19:17

2012-01-05 09:19:25

iOSApp应用

2011-12-30 22:06:42

App

2013-07-05 13:48:47

App

2009-12-31 15:53:28

SilverLight

2014-06-27 14:36:03

iOS演示APP原型
点赞
收藏

51CTO技术栈公众号