首页 > 代码库 > Android支付接入(四):联通VAC计费
Android支付接入(四):联通VAC计费
原地址:http://blog.csdn.net/simdanfeg/article/details/9012031
注意事项:
1.联通支付是不需要自己标识软硬计费点的,当平台申请计费点的时候会提交每个计费点是否允许重复支付(即软硬计费点),支付时我们只需要传入相应的计费点即可,平台会帮我们记录哪个是软计费点,哪个是硬计费点。
2.联通需将premessable.txt文件copy到工程assets目录下,用来配置渠道,每个渠道对应不同的渠道号,例如联通渠道号为:“00012243”。
3.游戏付费完成后直接结束付费,勿添加额外的提示信息,例如:Toast,AlertDialog等。
4.AndroidManifest.xml中正确配置应用开发者ID,应用ID,AppID,渠道伪码(线下渠道)后即可进行测试付费(0.01元)
AndroidManifest.xml
[html] view plaincopy
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.blogforlt.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 应用开发者ID cpId: --> <meta-data android:name="cpId" android:value="cpid:XXXX" > </meta-data> <!-- 应用ID AppId: --> <meta-data android:name="AppId" android:value="appid:XXXX" > </meta-data> <!-- 渠道伪码(线下渠道) --> <meta-data android:name="fidsms" android:value="fidsms:XXXXX" > </meta-data> </application> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.SEND_SMS"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
[html] view plaincopy
[html] view plaincopy
MainActivity.java
[java] view plaincopy
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Fiap fiap = new Fiap(MainActivity.this); fiap.android_Pay(1); } }); Fiap.java [java] view plaincopy package com.example.blogforlt; import com.multimode_billing_sms.ui.MultiModePay; import com.multimode_billing_sms.ui.MultiModePay.SMSCallBack; import android.app.Activity; import android.os.Handler; import android.util.Log; import android.widget.Toast; public class Fiap { private Activity mActivity; //计费点短代码 private String charge_Point; //道具名称 private String itemID= ""; //道具金额 private int coin; public Fiap(Activity activity){ mActivity = activity; } //index是三种计费点对应的标识 public void android_Pay(int index){ switch (index) { case 0: //激活游戏 //此处计费点填写移动平台申请的计费点的后三位作为计费点索引 charge_Point = "000"; itemID = "激活游戏"; coin = 6; break; case 1: charge_Point = "001"; itemID = "购买200兑换币"; coin = 2; break; case 2: charge_Point = "002"; itemID = "购买400兑换币"; coin = 3; break; default: break; } fiapHandler.sendEmptyMessage(1); } Handler fiapHandler = new Handler(){ public void handleMessage(android.os.Message msg) { if (msg.what == 1) { MultiModePay.getInstance().setEnableSend(true);// 调用SMS方法前必须调用 // 参数依次为:当前界面的Context,公司名字,电话号码,游戏名,道具名,道具金额(元),计费点,回调接口 MultiModePay.getInstance().sms(mActivity, "北京XXXXXX有限公司", "010-XXXXXXXX", "XXX", itemID, String.valueOf(coin), charge_Point, new MsgCallBack()); } }; }; class MsgCallBack implements SMSCallBack { @Override public void ButtonCLick(int arg0) { // TODO Auto-generated method stub } @Override public void SmsResult(int result, String arg1) { // TODO Auto-generated method stub if (result == MultiModePay.SUCCESS) { // 支付成功的处理,直接执行支付成功后的逻辑,此处为了体现出支付成功弹了个Toast,正式使用时不要有任何提示 Toast.makeText(mActivity, "支付成功", Toast.LENGTH_LONG).show(); Log.i("cn.catcap.qhta", "联通方式支付成功。。。。"); } else if (result == MultiModePay.FAILD) { Log.i("cn.catcap.qhta", "联通方式支付失败。。。。"); } MultiModePay.getInstance().DismissProgressDialog(); // 取消进度条,此行必须有才能回到游戏界面 } } }
至此,Android三大运营商的sdk付费接入已完成
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。