Android联通VAC计费

来源:互联网 发布:excel做数据分析插件 编辑:程序博客网 时间:2024/04/28 23:36

转载: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
  1. <application  
  2.         android:allowBackup="true"  
  3.         android:icon="@drawable/ic_launcher"  
  4.         android:label="@string/app_name"  
  5.         android:theme="@style/AppTheme" >  
  6.         <activity  
  7.             android:name="com.example.blogforlt.MainActivity"  
  8.             android:label="@string/app_name" >  
  9.             <intent-filter>  
  10.                 <action android:name="android.intent.action.MAIN" />  
  11.   
  12.                 <category android:name="android.intent.category.LAUNCHER" />  
  13.             </intent-filter>  
  14.         </activity>  
  15.          
  16.         <!-- 应用开发者ID   cpId: -->  
  17.         <meta-data  
  18.             android:name="cpId"  
  19.             android:value="cpid:XXXX" >  
  20.         </meta-data>  
  21.   
  22.         <!-- 应用ID   AppId: -->  
  23.         <meta-data  
  24.             android:name="AppId"  
  25.             android:value="appid:XXXX" >  
  26.         </meta-data>  
  27.   
  28.         <!-- 渠道伪码(线下渠道) -->  
  29.         <meta-data android:name="fidsms"  
  30.             android:value="fidsms:XXXXX" >  
  31.         </meta-data>  
  32.          
  33.     </application>  
  34.      
  35.  <uses-permission android:name="android.permission.INTERNET"/>  
  36.  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
  37.  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
  38.  <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>  
  39.  <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>  
  40.  <uses-permission android:name="android.permission.SEND_SMS"/>  
  41.  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
  42.  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
[html] view plaincopy
  1.    
[html] view plaincopy
  1.    

 

MainActivity.java

 

[java] view plaincopy
  1. findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {  
  2.      
  3.    @Override  
  4.    public void onClick(View v) {  
  5.     // TODO Auto-generated method stub  
  6.     Fiap fiap = new Fiap(MainActivity.this);  
  7.     fiap.android_Pay(1);  
  8.    }  
  9.   });  


Fiap.java

 

[java] view plaincopy
  1. package com.example.blogforlt;  
  2.   
  3. import com.multimode_billing_sms.ui.MultiModePay;  
  4. import com.multimode_billing_sms.ui.MultiModePay.SMSCallBack;  
  5. import android.app.Activity;  
  6. import android.os.Handler;  
  7. import android.util.Log;  
  8. import android.widget.Toast;  
  9.   
  10. public class Fiap {  
  11.    
  12.  private Activity mActivity;  
  13.  //计费点短代码  
  14.  private String charge_Point;  
  15.  //道具名称  
  16.  private String itemID= "";  
  17.  //道具金额  
  18.  private int coin;  
  19.    
  20.  public Fiap(Activity activity){  
  21.     
  22.   mActivity = activity;  
  23.    
  24.  }  
  25.   
  26.    
  27.  //index是三种计费点对应的标识  
  28.  public void android_Pay(int index){  
  29.     
  30.   switch (index) {  
  31.   
  32.   case 0:  
  33.    //激活游戏  
  34.    //此处计费点填写移动平台申请的计费点的后三位作为计费点索引  
  35.    charge_Point = "000";  
  36.    itemID = "激活游戏";  
  37.    coin = 6;  
  38.    break;  
  39.   case 1:  
  40.    charge_Point = "001";  
  41.    itemID = "购买200兑换币";  
  42.    coin = 2;  
  43.    break;  
  44.   case 2:  
  45.    charge_Point = "002";  
  46.    itemID = "购买400兑换币";  
  47.    coin = 3;  
  48.    break;  
  49.   
  50.   default:  
  51.    break;  
  52.   }  
  53.     
  54.   fiapHandler.sendEmptyMessage(1);  
  55.     
  56.  }  
  57.    
  58.  Handler fiapHandler = new Handler(){  
  59.   public void handleMessage(android.os.Message msg) {  
  60.    if (msg.what == 1) {  
  61.     MultiModePay.getInstance().setEnableSend(true);// 调用SMS方法前必须调用  
  62.     // 参数依次为:当前界面的Context,公司名字,电话号码,游戏名,道具名,道具金额(元),计费点,回调接口  
  63.     MultiModePay.getInstance().sms(mActivity, "北京XXXXXX有限公司",  
  64.       "010-XXXXXXXX""XXX", itemID, String.valueOf(coin),  
  65.       charge_Point, new MsgCallBack());  
  66.    }  
  67.   };  
  68.  };  
  69.    
  70.  class MsgCallBack implements SMSCallBack {  
  71.   
  72.   @Override  
  73.   public void ButtonCLick(int arg0) {  
  74.    // TODO Auto-generated method stub  
  75.   
  76.   }  
  77.   
  78.   @Override  
  79.   public void SmsResult(int result, String arg1) {  
  80.    // TODO Auto-generated method stub  
  81.    if (result == MultiModePay.SUCCESS) {  
  82.       
  83.     // 支付成功的处理,直接执行支付成功后的逻辑,此处为了体现出支付成功弹了个Toast,正式使用时不要有任何提示  
  84.     Toast.makeText(mActivity, "支付成功", Toast.LENGTH_LONG).show();  
  85.   
  86.     Log.i("cn.catcap.qhta""联通方式支付成功。。。。");  
  87.   
  88.    } else if (result == MultiModePay.FAILD) {  
  89.   
  90.     Log.i("cn.catcap.qhta""联通方式支付失败。。。。");  
  91.   
  92.    }  
  93.   
  94.    MultiModePay.getInstance().DismissProgressDialog(); // 取消进度条,此行必须有才能回到游戏界面  
  95.   }  
  96.  }  
  97. }  


至此,Android三大运营商的sdk付费接入已完成

0 0
原创粉丝点击