当前位置: 首页 > news >正文

个人做商贸网站山东网站制作软件

个人做商贸网站,山东网站制作软件,商标注册网官网查询,网站建设灯iOS应用内付费(IAP)开发步骤列表 前两天和服务端同事一起#xff0c;完成了应用内付费#xff08;以下简称IAP, In app purchase#xff09;的开发工作。步骤繁多#xff0c;在此把开发步骤列表整理如下。因为只是步骤列表#xff0c;所以并不含详细的说明教程#xff0c…iOS应用内付费(IAP)开发步骤列表 前两天和服务端同事一起完成了应用内付费以下简称IAP, In app purchase的开发工作。步骤繁多在此把开发步骤列表整理如下。因为只是步骤列表所以并不含详细的说明教程需要看教程的新手可以看我附在最后的一些参考链接。 配置Developer.apple.com 登录到Developer.apple.com然后进行以下步骤 为应用建立建立一个不带通配符的App ID用该App ID生成和安装相应的Provisioning Profile文件。配置iTunes Connect 登录到iTunes Connet然后进行以下步骤 用该App ID创建一个新的应用。在该应用中创建应用内付费项目选择付费类型通常可选的是可重复消费(Consumable)的或是永久有效(Non-Consumable)的2种然后设置好价格和Product ID以及购买介绍和截图即可这里的Product ID是需要记住的后面开发的时候需要。如下图所示 添加一个用于在sandbox付费的测试用户如下图所示。注意苹果对该测试用户的密码要求和正式账号一样必须是至少8位并且同时包含数字和大小写字母   填写相关的税务银行联系人信息。如下图所示 ###开发工作(ios端) 1、 在工程中引入 storekit.framework 和 #import 2、 获得所有的付费Product ID列表。这个可以用常量存储在本地也可以由自己的服务器返回。 3、 制作一个界面展示所有的应用内付费项目。这些应用内付费项目的价格和介绍信息可以是自己的服务器返回。但如果是不带服务器的单机游戏应用或工具类应用则可以通过向App Store查询获得。我在测试时发现向App Store查询速度非常慢通常需要2-3秒钟所以不建议这么做最好还是搞个自己的服务器吧。 4、当用户点击了一个IAP项目我们先查询用户是否允许应用内付费如果不允许则不用进行以下步骤了。代码如下 if ([SKPaymentQueue canMakePayments]) { // 执行下面提到的第5步 [self getProductInfo];} else { NSLog(失败用户禁止应用内付费购买.);}   5、 我们先通过该IAP的ProductID向AppStore查询获得SKPayment实例然后通过SKPaymentQueue的 addPayment方法发起一个购买的操作。 // 下面的ProductId应该是事先在itunesConnect中添加好的已存在的付费项目。否则查询会失败。- (void)getProductInfo { NSSet * set [NSSet setWithArray:[ProductId]]; SKProductsRequest * request [[SKProductsRequest alloc] initWithProductIdentifiers:set]; request.delegate self; [request start];}// 以上查询的回调函数- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { NSArray *myProduct response.products; if (myProduct.count 0) { NSLog(无法获取产品信息购买失败。); return; } SKPayment * payment [SKPayment paymentWithProduct:myProduct[0]]; [[SKPaymentQueue defaultQueue] addPayment:payment];}   6、 在viewDidLoad方法中将购买页面设置成购买的Observer。 - (void)viewDidLoad { [super viewDidLoad]; // 监听购买结果 [[SKPaymentQueue defaultQueue] addTransactionObserver:self];}- (void)viewDidUnload { [super viewDidUnload]; [[SKPaymentQueue defaultQueue] removeTransactionObserver:self];}   7、 当用户购买的操作有结果时就会触发下面的回调函数相应进行处理即可。 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { case SKPaymentTransactionStatePurchased://交易完成 NSLog(transactionIdentifier %, transaction.transactionIdentifier); [self completeTransaction:transaction]; break; case SKPaymentTransactionStateFailed://交易失败 [self failedTransaction:transaction]; break; case SKPaymentTransactionStateRestored://已经购买过该商品 [self restoreTransaction:transaction]; break; case SKPaymentTransactionStatePurchasing: //商品添加进列表 NSLog(商品添加进列表); break; default: break; } }}- (void)completeTransaction:(SKPaymentTransaction *)transaction { // Your application should implement these two methods. NSString * productIdentifier transaction.payment.productIdentifier; NSString * receipt [transaction.transactionReceipt base64EncodedString]; if ([productIdentifier length] 0) { // 向自己的服务器验证购买凭证 } // Remove the transaction from the payment queue. [[SKPaymentQueue defaultQueue] finishTransaction: transaction];}- (void)failedTransaction:(SKPaymentTransaction *)transaction { if(transaction.error.code ! SKErrorPaymentCancelled) { NSLog(购买失败); } else { NSLog(用户取消交易); } [[SKPaymentQueue defaultQueue] finishTransaction: transaction];}- (void)restoreTransaction:(SKPaymentTransaction *)transaction { // 对于已购商品处理恢复购买的逻辑 [[SKPaymentQueue defaultQueue] finishTransaction: transaction];}   8、服务器验证凭证(Optional)。如果购买成功我们需要将凭证发送到服务器上进行验证。考虑到网络异常情况iOS端的发送凭证操作应该进行持久化如果程序退出崩溃或网络异常可以恢复重试。 ###开发工作(服务端) 服务端的工作比较简单分4步 接收ios端发过来的购买凭证。判断凭证是否已经存在或验证过然后存储该凭证。将该凭证发送到苹果的服务器验证并将验证结果返回给客户端。如果需要修改用户相应的会员权限。考虑到网络异常情况服务器的验证应该是一个可恢复的队列如果网络失败了应该进行重试。 与苹果的验证接口文档在这里。简单来说就是将该购买凭证用Base64编码然后POST给苹果的验证服务器苹果将验证结果以JSON形式返回。 苹果AppStore线上的购买凭证验证地址是https://buy.itunes.apple.com/verifyReceipt 测试的验证地址是https://sandbox.itunes.apple.com/verifyReceipt 参考链接 以下参考链接详细说明了完成应用内付费开发的步骤 https://developer.apple.com/appstore/in-app-purchase/index.htmlhttp://www.himigame.com/iphone-cocos2d/550.htmlhttp://www.cocoachina.com/iphonedev/sdk/2011/1028/3435.htmlhttp://www.cocoachina.com/newbie/basic/2012/0214/3976.html
http://www.pierceye.com/news/437411/

相关文章:

  • 教育网站建设需求文档门户网站系统建设清单
  • 天津市建设与管理局网站建筑网建设通平台
  • 长沙网站开发微联讯点官网微信公众号直接同步到wordpress
  • 湖南建设监理官方网站属于网页制作平台的是?
  • 如何建设公司网站知乎湖南自驾旅游与房车协会
  • 扬中网站优化做 爱 网站视频教程
  • 服务器发布网站免费网络营销推广软件
  • 婚纱摄影类网站重庆seo招聘
  • 登陆空间商网站建站模板免费下载
  • 用php做网站用什么框架牡丹江免费发布信息的平台
  • 网站开发 专有名词江油移动网站建设
  • 百度后台管理东莞市长安镇网站制作优化
  • 长春市建设厅网站大自然的网站设计
  • 网站建设能用手机制作吗人人车网站建设费用
  • 网站开发技术部分网络营销的宏观环境
  • 南宁网站建设公司国外优秀网站案例
  • 做网站需要什么证件吗免费seo技术教程
  • 深圳银行网站建设wordpress 审批流
  • 网站开发设计怎么找客户做企业网站 空间怎么买
  • 怎么在搜索引擎里做网站网页wordpress文章新窗口
  • 企业网站功能对比分析新农村建设 网站
  • 公司网站营销公司做网站都咨询哪些问题
  • 洛阳网站建设价格做网站需要服务器还是主机
  • 北京企业网站制作哪家好做宠物网站导航应该写什么字
  • 做设计网站的工作怎么样郑州企业微网站建设
  • 青岛百度整站优化服务做网站都需要哪些费用
  • 新校区建设专题网站招聘H5在什么网站做最好
  • 网站建设vi设计交互设计是做什么的
  • 怎么做提货网站auto post wordpress
  • 销售网站怎么做的购物网站建设多少钱