破晓 发表于 2015-4-23 16:06:40

移动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


lxz 发表于 2017-10-24 02:39:34

感谢分享!~
页: [1]
查看完整版本: 移动mm支付ane使用教程