感谢开发者(昵称:杨广)的分享,本文将介绍如何实现基于AppCan平台的苹果内支付(IAP)功能。
1.准备AppCan的苹果内支付插件包
地址:http://plugin.appcan.cn/details.html?id=567_index
注意:其中有很多类似插件,只有这个是官方提供的。
2.上传内支付插件
进入应用开发界面,自定义上传插件:插件引擎——添加插件,如图:
这里需要注意:请保持填写的插件名称与插接件包名称一致(uexInAppPurchase)。
3. 编写代码
代码很简单,这里用了DEMO代码,业务逻辑代码需要按自己的需求去写。这里面最关键的是ProductID ,从产品列表那里返回,后面会说到这些问题。
<!DOCTYPE HTML>
<html>
<head>
<meta http-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>
<script type="text/javascript">
window.uexOnload = function() {
uexInAppPurchase.onRequestState = function(state){
alert(state);
}
uexInAppPurchase.cbGetProductList = function(info){
alert(info);
}
uexInAppPurchase.onPurchaseState = function(state){
alert(state);
}
uexInAppPurchase.onSettingState = function(state){
alert(state);
}
uexInAppPurchase.onTransactionState = function(state){
alert(state);
}
uexInAppPurchase.onVerifyState = function(state){
alert(state);
}
uexInAppPurchase.cbGetVerifyInfo = function(info){
alert(info);
}
uexInAppPurchase.onRestoreState = function(state){
alert(state);
}
}
function getProductsButton(){
var params = {
"productIDs": ["com.**.yyyyy"]
};
alert(JSON.stringify(params));
uexInAppPurchase.getProductList(JSON.stringify(params));
}
function purchaseButton(){
var params = {
"productID": "com.**.yyyyy",
"appStoreVerifyURL": false
};
alert(JSON.stringify(params));
uexInAppPurchase.purchase(JSON.stringify(params));
}
function restoreButton(){
uexInAppPurchase.restorePurchase();
}
</script>
</head>
<body>
<div class="tit" id = "tit">InAppPurchase</div>
<div class="conbor">
<div class="consj">
<input type="text" id="aaa" value="com.**.yyyyy" style="width: 100%; height:3em;">
<input class="btn" type="button" value="得到产品列表" onclick="getProductsButton();"/>
<input class="btn" type="button" value="购买产品" onclick="purchaseButton();"/>
<input class="btn" type="button" value="恢复购买" onclick="restoreButton();"/>
</div>
</div>
</body>
</html>
从程序员角度来说,以上表示代码部分工作的完结。没必要继续纠结,接下去是都是需要按苹果内的文档来操作。
4.添加一个APP
一定要是下图中的准备提交状态才可以进行测试。创建APP的具体步骤参考苹果开发文档。
5.添加税务信息
6.添加商品信息
从APP的功能内去添加,这个商品添加完也一定要处于准备提交状态才可以进行测试。添加商品请参考苹果手册的步骤来实现。
7. 生成测试账户
一定要添加在沙箱环境的测试用户,具体方法参考苹果操作步骤。
8. 接下来就是配置苹果证书和描述文件
此处不要用企业证书而是用发布证书,描述文件要选择Ad Hoc,并且要勾选In-AppPurchase配置,如下图。
9. 安装应用
将IPA打包后一定要通过ITunes安装到Ad Hoc里允许的UUID设备上,设备必须使用沙盒测试账号登录。
10. 接下来便进入测试功能
参照下图。后面内容可以按各自需要的逻辑进行开发了。
11.创建请求到苹果官方进行购买验证,若验证通过即支付成功。
uexInAppPurchase.cbGetVerifyInfo该方法会有回调,注意返回的参数:“status”:0 (状态为0,说明是验证通过,成功交易的,其余情况都是交易失败)。
以上即为实现苹果内支付的过程。混合开发模式给开发者带来更简单的移动开发体验,但有些功能实现方法还是需要开发者自己多研究,仔细查看相关使用文档,这样可以避免一些不必要的问题。
最近访客