移动mm支付ane使用教程
移动mm支付ane使用教程flash android移动应用中使用移动MM的支付功能
简介移动mm支付通过短信的方式实现付费,因为方便,所以付费率比较高。flash 开发也能通过flash 移动MM支付ANE来实现在air应用里面添加移动MM短信支付的功能。支持Android平台注册移动MM开发者账号在开始代码之前,需要上移动MM开发者网站http://dev.10086.cn/注册账号,并申请移动mm支付权限,等待审核通过。 通过后就可以获得应用的信息从而进行后面的开发测试。as3代码里面添加移动支付使用移动MM,第一步就是要设置应用ID和key值,这样才能进行后面的调用。
PayExtension.getInstance().initPay("your appID","your appKey");
PayExtension.getInstance().addEventListener(PayEvent.onInitFinish,onInitFinish);
protected function onInitFinish(event:PayEvent):void
{
if(event.type==PayEvent.onInitFinish){
trace("初始化完成,后面可以支付了");
}
}
开始支付
注意不要在上面事件输出处直接调用下面的支付接口,而应该通过点击支付按钮之类的进行调用,否则会失败。PayExtension.getInstance().addEventListener(PayEvent.onPurchaseFinish,onPayFinish);
PayExtension.getInstance().purchase("your paycode",1);
//PayExtension.getInstance().query("your pay code");
protected function onPayFinish(event:PayEvent):void
{
trace(event.type,event.data);
}
添加移动MM支付的配置
编写代码后需要配置xxx-app.xml才能进行正常调用。其中包括权限配置和activity配置
配置有点长,不要晕过去了。下面还有事情。 找到配置中的air.demo.debug并替换为你自己的包名
如果不经过处理,包名称是应用ID前面加个air.前缀,如果是debug包,尾部加个.debug后缀<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<application>
<service
android:name="mm.purchasesdk.iapservice.PurchaseService"
android:exported="true" >
<intent-filter android:priority="301" >
<action android:name="com.aspire.purchaseservice.BIND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="301" >
<action android:name="air.demo.debug.purchaseservice.BIND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="301" >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.SAFIAP.COMPONENT" >
</category>
</intent-filter>
</service>
<activity
android:name="mm.purchasesdk.iapservice.BillingLayoutActivity"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.Translucent" >
<intent-filter android:priority="301" >
<action android:name="air.demo.debug.com.mmiap.activity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service
android:name="safiap.framework.SafFrameworkManager"
android:exported="true"
android:process="safiap.framework" >
<intent-filter android:priority="630" >
<action android:name="safiap.framework.sdk.ISAFFramework" />
</intent-filter>
<intent-filter android:priority="630" >
<action android:name="safiap.framework.ACTION_START_DOWNLOAD" />
</intent-filter>
<intent-filter android:priority="630" >
<action android:name="safiap.framework.ACTION_CHECK_UPDATE" />
</intent-filter>
</service>
<receiver android:name="safiap.framework.CheckUpdateReceiver" >
<intent-filter>
<action android:name="safiap.framework.ACTION_CANCEL_NOTIFICATION" />
</intent-filter>
<intent-filter>
<action android:name="safiap.GET_SHARED_DATA" />
</intent-filter>
<intent-filter>
<action android:name="safiap.framework.ACTION_SET_TIMER" />
</intent-filter>
</receiver>
<activity
android:name="safiap.framework.ui.UpdateHintActivity"
android:launchMode="singleInstance"
android:excludeFromRecents="true"
android:configChanges="orientation"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<action android:name="safiap.framework.ACTION_TO_INSTALL" />
</intent-filter>
<intent-filter>
<action android:name="safiap.framework.ACTION_TO_INSTALL_IAP" />
</intent-filter>
<intent-filter>
<action android:name="safiap.framework.ACTION_NETWORK_ERROR_IAP" />
</intent-filter>
<intent-filter>
<action android:name="safiap.framework.ACTION_NETWORK_ERROR_FRAMEWORK" />
</intent-filter>
</activity>
<service android:name="safiap.framework.logreport.monitor.handler.LogreportHandler" android:process=":remote"/>
</application>
</manifest>
打包和提交
最激动人心,也是最恶心人的时刻到了,打包成apk产品,提交审核。 步骤按下面的来,不能乱也不能省
[*]按正常普通的方式导出APK
[*]用winrar打开但不要解压成文件夹,删除里面的META-INF文件夹
[*]把附带的apk_files目录里面的所有文件和文件夹拖进apk,放在根目录下
[*]把进过2,3步处理的apk移动到apk_sign\apk目录里面,然后双击sign.bat对修改后的apk签名,签名后的apk在apk_result目录下,也就是最终的apk
注意事项
[*]不经过打包处理的apk调用函数会出错,没反应
[*]flash cc,flash cs之类工具会自动修改xxx-app.xml文件,从而覆盖手动修改的配置,导致失败,解决方法是在flash cc的右侧导出面板里面设置手动管理权限
[*]默认adt会自动添加air.前缀,测试的apk还会自动添加.debug后缀。在设定包的时候千万注意
本文来自:http://www.cuo.so/ane-list/mmpay-ane.html
感谢分享!~
页:
[1]