文档章节

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

piggybear
 piggybear
发布于 2015/02/16 10:32
字数 925
阅读 2
收藏 0

    刚发了个电信爱游戏支付的sdk接入,接下来看下联通VAC计费的sdk接入,联通在三个运营商支付中算是要求比较少的,但联通的sdk版本更新比较频繁。不过现在的sdk接入都是向下兼容的,大家也不需要有什么顾虑。今天发的这篇文章是基于联通短代VAC计费SDK(V1.0.5)版本写的,文档及demo依旧放到了百度网盘中,需要的可以去下载:http://pan.baidu.com/share/link?shareid=429975&uk=473193131

 

注意事项:

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

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

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

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

 

看下代码:

 

AndroidManifest.xml:

 

<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"/>

 

MainActivity.java:

 

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:

 

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/aa294194253/article/details/39211469

piggybear
粉丝 3
博文 237
码字总数 37552
作品 0
西安
技术主管
私信 提问
BestSDK推出一站式SDK搜索服务

BestSDK平台针对目前移动开发应用接入难度大、流程繁琐、上线慢等现状,BestSDK平台已经正式开放,互动式SDK一站式搜索服务,使平台具备开发者SDK的搜索、讨论等系列功能。 BestSDK通过建立移...

老官
2015/04/26
255
1
移动联通电信wap和net接入点判断

在android网络开发中,对接入点判断是必不可少的,因为连接网络的时候如果是wap接入点,需要设置代。移动联通wap(代理相同:10.0.0.172:80),电信wap(代理:10.0.0.200:80) 接入点类型...

gavin_jin
2012/02/09
403
0
手机在vpn环境下,怎样直接访问百度定位sdk的服务器

问题说明:我们的Android产品,手机接入了联通专网vpn。该vpn,联通已经设置成禁止访问外网,所以在这种情况下,是无法访问到百度定位sdk的服务器(因为该服务器在外网),因此也无法使用定位...

M_MissZen
2013/11/21
641
2
OGEngine举办手游开发、发行交流会议

由OGEngine举办的第二次手游开发者交流会议以圆桌会议方式在深圳高新园举行。会议不仅吸引了手游开发者,也有海外支付商,国内外的手游发行商参加。 会议环绕三大主题展开讨论和交流。主题分...

橙游OrangeGame
2014/11/03
2
0
Android项目实战(五十):微信支付 坑总结

大部分APP必备需求,使用总结  Android接入文章在此:官方文档   文档很简单,Android分为四步: 1、后台配置 2、Android 内 注册appId 3、Android 内 调起支付 4、Android 内 支付结果回...

听着music睡
2018/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
393
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
3
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
2
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部