zoukankan      html  css  js  c++  java
  • iOS开发--应用内购买

    在最近的这个项目中做到了应用内购买钻石功能,在这个功能点上之前也是没有任何经验 通过百度得到了答案,这里博主就不把应用内购买的代码列出来

    网上有很多,难度并不大,但是应用内购买应注意的事项我认为有以下几点:

    1.在ituns connect主页里保证税务,协议和银行业务的功能项已经开通好了,否则是无法注册购买的产品的信息

    2.注册购买产品的product id需要用到程序代码里,所以程序代码中product id 就是注册的产品id.

    3.在程序代码中拿到产品信息后支付完成后需要拿到一个叫做SKPaymentTransaction对象里边的一个属性:transactionReceipt 返回的是一个nsdata类型

    但是我们应该用字符串接收,因为这些数据是要发送给自己的服务器进行验证的(verifyReceipt)一句代码如下:

     NSString *templeTransactionRe = [[NSString alloc] initWithData:transaction.transactionReceipt encoding:NSUTF8StringEncoding];

    获得收据后需要发送给服务器验证,因为这里涉及到测试服务器和正式服务器两个地址,所以我当时是通过判断收据中是否包含关键字“sandbox”(也可以通过返回的code码) 如果有这个value 说明是测试环境下拿到的收据 这时我们需要服务器选择测试地址进行验证,否则是正式环境的地址

    博主当初在第三步花了比较长的时间 没经验没办法。所以现在特意写下来

    4.缓存:这是第三步涉及到的缓存 是因为苹果扣钱在先 本地服务器验证收据在后!如果苹果已经扣走了用户的钱,而在本地服务器请求验证时突然间网络断了或是别的原因导致验证失败而没有返回给用户相应的虚拟币或钻石之类的(这种情况很严重的),这时需要把收据和交易单号存到本地数据库,在用户下一次进入到此界面应及时调出数据库中的收据再一次请求本地服务器返回给用户相应的虚拟币或钻石!这样不会让用户白白损失“几个亿”(切记这里的缓存的重要性)

  • 相关阅读:
    SSH 连接超时解决办法
    alter system switch logfile和alter system archive log current 的区别
    Oracle 删除归档日志脚本
    Oracle 11g 新特性简介
    Oracle sqlplus 常用命令总结
    Oracle 11g 新特性简介
    计算文件的MD5值上传到服务器 下载验证文件是否被篡改
    看不下去的代码放这有机会用手机看。。。
    C++ Primer第一章学习笔记——C++初邂逅
    OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui
  • 原文地址:https://www.cnblogs.com/billy-chou/p/5504307.html
Copyright © 2011-2022 走看看