您的位置:首页 > 移动开发 > Android开发

Android支付接入(四):联通VAC计费

2016-12-12 11:01 423 查看
注意事项:

1.联通支付是不需要自己标识软硬计费点的,当平台申请计费点的时候会提交每个计费点是否允许重复支付(即软硬计费点),支付时我们只需要传入相应的计费点即可,平台会帮我们记录哪个是软计费点,哪个是硬计费点。

2.联通需将premessable.txt文件copy到工程assets目录下,用来配置渠道,每个渠道对应不同的渠道号,例如联通渠道号为:“00012243”。

3.游戏付费完成后直接结束付费,勿添加额外的提示信息,例如:Toast,AlertDialog等。

4.AndroidManifest.xml中正确配置应用开发者ID,应用ID,AppID,渠道伪码(线下渠道)后即可进行测试付费(0.01元)

 

AndroidManifest.xml

[html] view
plain copy

<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
plain copy

   

[html] view
plain copy

   

 

MainActivity.Java

 

[java] view
plain copy

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
plain copy

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付费接入已完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  支付 android 联通