您需要登录后才可以操作登录 | 立即注册
关闭
楼主
AppCan_小助
  • TA的每日心情
    开心
    2016-10-10 11:07
  • 签到天数: 66 天

    连续签到: 1 天

    [LV.6]常住居民II

    [社区活动] 尖课笔记(七) | 这可能是开发iOS应用内支付最详细的教程了 [复制链接]

    1531 0 发表于 2016-11-10 15:40:51

    都说玩家分为两种:人民币玩家和普通玩家。如今AppStore付费的软件越来越多,大家对iOS应用内付费也习以为常。而从开发的角度,iOS应用内付费应如何设置?这就为大家奉上最详细的步骤。

    1)准备AppCan的苹果内购买插件包
    注意其中有很多类似插件,只有这个是官方提供的。

    2)安装插件,需要线上环境
    转完以后效果如下:
    1.png

    3)编写代码
    代码很简单,业务逻辑代码需要按自己的需求去写。这里面最关键的是ProductID ,从产品列表那里返回,后面会说到这些问题。
    <!DOCTYPE HTML>
    <html>
        <head>
            <metahttp-equiv="Content-Type" content="text/html;charset=utf-8" />
            <meta name="viewport"
           content="target-densitydpi=device-dpi, width=device-width,initial-scale=1.0, user-scalable=no" />
            <link rel="stylesheet"type="text/css" href="css/index.css">
               <title>uexButton</title>
                <style>
                body{color: #FFFFFF;}
                </style>
                <scripttype="text/javascript">
                    window.uexOnload = function() {
    uexInAppPurchase.cbGetProductList= function(info){
    //返回的有效产品列表
                            alert(info);
                        }
    uexInAppPurchase.onTransactionState= function(state){

                            alert(state);
                        }
                    }
    function canMakePayButton(){
    //判断设备是否支持内支付功能
                    var info =uexInAppPurchase.canMakePay();           
                        alert(info);
                }

                function getProductsButton(){
                    var params = {
                        "productIDs":["com.**.yyyyy"]

                    };
                    alert(JSON.stringify(params));
                    uexInAppPurchase.getProductList(JSON.stringify(params));
                }
                function purchaseButton(){

                    var params = {
               // productID应从cbGetProductList中获取,为有效的产品ID
                        "productID":"com.**.yyyyy",
                       "appStoreVerifyURL": false
                    };
                    alert(JSON.stringify(params));
                   uexInAppPurchase.purchase(JSON.stringify(params));

                }

                function restoreButton(){

                   uexInAppPurchase.restorePurchase();
                }
                </script>
                </head>

        <body>
            <div id ="tit">InAppPurchase</div>
            <div>
                <div>
                   <br><br><br><br><br><br><br>
                    <input type="text"id="aaa" value="com.**.yyyyy" style="width: 100%;height:3em;">
                    <inputtype="button" value="是否支持支付功能"   />
                    <inputtype="button" value="得到产品列表"onclick="getProductsButton();"/>
                    <inputtype="button" value="购买产品"onclick="purchaseButton();"/>
                    <inputtype="button" value="恢复购买"onclick="restoreButton();"/>
                </div>
            </div>
        </body>
    </html>

    从程序员角度来说,以上表示代码部分工作的完结。没必要继续纠结,接下去是都是需要按苹果内支付的文档来操作。

    5)添加一个APP,一定要是下图中的准备提交状态才可以进行测试。
    创建APP的具体步骤参考苹果开发文档。

    2.png

    6)添加税务信息
    3.png

    7)添加商品信息
    从APP的功能内去添加,这个商品添加完也一定要处于准备提交状态才可以进行测试。添加商品请参考苹果手册的步骤来实现。

    4.png
    8)生成测试账户
    一定要添加在沙箱环境的测试用户。具体方法参考苹果操作步骤。

    5.png
    9)配置苹果证书和描述文件
    此处不要用企业证书而是用发布证书,描述文件要选择Ad Hoc,并且要勾选In-AppPurchase配置,如下图。

    6.png

    10)将IPA打包后,通过ITunes安装到Ad Hoc里允许的UUID设备上
    设备必须使用沙盒测试账号登录。

    7.png

    11)测试
    参照下图。后面内容可以按各自需要的逻辑进行开发了。
    8.png 9.png 10.png 11.png

    12)创建请求到苹果官方进行购买验证
    若验证通过即支付成功。uexInAppPurchase.onTransactionState该方法会有回调,注意返回的参数:“status”:0 (状态为0,说明是验证通过,成功交易的,其余情况都是交易失败)。


    主题:
    级别:游客
    发帖:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表