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

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

2014-10-31 17:16 351 查看
注意事项:

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付费接入已完成

转自
http://blog.csdn.net/simdanfeg/article/details/9012031
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: