上篇博文跟大家一起走了一遍支付宝支付,今天我们来看看移动支付。众所周知目前付费通道的龙头老大还要当属三大运营商(移动、联通、电信)。运营商接入代码相对简单,但琐碎的要求太多,涉及到启动界面、桌面图标、主界面、退出界面等。移动游戏基地后台地址:http://g.10086.cn/

部分截图

注意事项:
1.移动游戏基地sdk为动态打包,即公司信息,计费点信息都是在申请计费点的时候提交到移动的,而文中提到的计费点索引是移动申请后台看到的真实计费点的后三位(由于此处属于商务负责,本人无法登陆后台所以无法提供截图,见谅)。
2.注意文中提到的启动游戏界面前先启动移动界面,退出游戏时显示移动的退出确认界面。
3.注意主界面需要显示的:开始游戏,设置,帮助,关于,更多游戏,退出必有选项。

好了,继续贴代码:

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.blogforyd.MainActivity"
android:label="@string/app_name" >
</activity>
<!-- 移动所需Activity注册 -->
<activity
android:name="cn.emagsoftware.gamebilling.activity.GameOpenActivity"
android:screenOrientation="sensor"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
//移动游戏基地需要启动游戏前先启动移动的闪屏界面,所以游戏主入口注册移到了这里
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CHINAMOBILE_OMS_GAME" />
<category android:name="android.intent.category.CHINAMOBILE_GAMES" />
</intent-filter>
</activity>
<!-- 移动所需Activity注册-->
</application>
<!-- 移动所需权限注册 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
注意:如果下边这行报错,clean一下项目就行了,可以无视
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" >
</uses-permission>
<!-- 移动所需权限注册 -->

MainActivity

package com.example.blogforyd;
import cn.emagsoftware.gamebilling.api.GameInterface;
import cn.emagsoftware.gamebilling.api.GameInterface.GameExitCallback;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 调用初始化移动支付,否则无法启动支付界面(此方法最好放到启动游戏的时候调用)
GameInterface.initializeApp(this);
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);
// 需要购买什么道具传进去相应的index,此处传0为激活游戏
fiap.android_Pay(0);
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit_game();
}
return super.onKeyDown(keyCode, event);
}
// 退出游戏
public void exit_game() {
GameInterface.exit(MainActivity.this, new GameExitCallback() {
@Override
public void onConfirmExit() {
System.exit(0);
}
@Override
public void onCancelExit() {
}
});
}
// 是否开启音效
public boolean is_open_music() {
return GameInterface.isMusicEnabled();
}
}

Fiap.java

//移动支付
//2013-04-28
package com.example.blogforyd;
import cn.emagsoftware.gamebilling.api.GameInterface;
import cn.emagsoftware.gamebilling.api.GameInterface.BillingCallback;
import android.app.Activity;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.Toast;
public class Fiap {
private Activity mActivity;
private boolean isRepeat;
private String charge_Point;
public Fiap(Activity activity){
mActivity = activity;
}
//index是三种计费点对应的标识
public void android_Pay(int index){
switch (index) {
case 0:
//激活游戏
isRepeat = false;
//此处计费点填写移动平台申请的计费点的后三位作为计费点索引
charge_Point = "000";
break;
case 1:
isRepeat = true;
charge_Point = "001";
break;
case 2:
isRepeat = true;
charge_Point = "002";
break;
case 3:
isRepeat = true;
charge_Point = "003";
break;
default:
break;
}
fiapHandler.sendEmptyMessage(1);
}
Handler fiapHandler = new Handler(){
public void handleMessage(Message msg) {
if (msg.what == 1) {
BillingCallback callBack = new BillingCallback() {
@Override
public void onBillingFail(String arg0) {
// TODO Auto-generated method stub
//此处表示支付失败
Log.i("result of pay", arg0);
}
@Override
public void onBillingSuccess(String arg0) {
// TODO Auto-generated method stub
//此处为支付成功逻辑
Toast.makeText(mActivity, "支付成功", Toast.LENGTH_LONG).show();
}
@Override
public void onUserOperCancel(String arg0) {
// TODO Auto-generated method stub
//此处表示用户取消支付
Log.i("result of pay", arg0);
}
};
//第一个参数为:触发计费接口的Context对象
//第二个参数为:选择采用短信计费还是联网计费(true为短信,false为联网)
//第三个参数为:计费点索引
//第四个参数为:支付结果回调
GameInterface.doBilling(mActivity, true, isRepeat, charge_Point,callBack);
}
};
};
} 

至此移动计费接入就完成了

Android支付接入(二):移动游戏基地相关推荐

  1. Android支付接入(七):Googlenbsp;In-app-Billing

    http://qing.blog.sina.com.cn/tj/634ac835330048cu.html 原文地址:Android支付接入(七):Google In-app-Billing作者:屌丝 ...

  2. Android支付接入(7):Google In-app-Billing

    今天跟大家一起看下Google的in-app Billing V3支付. 如果没有GooglePlay此处附上安装Google Play的一键安装器的链接(需要Root权限):http://www.m ...

  3. Android支付接入

    转载自:http://blog.sina.com.cn/s/blog_9498c8b60101d7x5.html 今天跟大家一起看下Google的in-app Billing V3支付.   如果没有 ...

  4. Android支付接入(七):Google In-app-Billing

    转载 http://blog.csdn.net/michael_liu_89/article/details/12704461 今天跟大家一起看下Google的in-app Billing V3支付. ...

  5. Android支付接入:Google In-app-Billing

    http://blog.csdn.net/michael_liu_89/article/details/12704461 今天跟大家一起看下Google的in-app Billing V3支付.    ...

  6. Android支付接入(七):Google In-app-Billing

     今天跟大家一起看下Google的in-app Billing V3支付.  如果没有GooglePlay此处附上安装Google Play的一键安装器的链接(需要Root权限):http://www ...

  7. Android支付接入(五):机锋网

    前边已经陆续跟大家走了一遍运营商和支付宝付费接入,今天跟大家一起看看机锋网的支付接入.事实上付费接入本身并没有太多须要注意的地方,做的多了以后你会发现套路都是大同小异的.而须要注意的地方在于怎么跟游戏 ...

  8. Android支付接入之Google In-app-Billing

    原文链接:http://www.mobile-open.com/2016/966337.html 因为公司需要接入Google的应用内支付(即Google的in-app Billing V3),接入过 ...

  9. Android支付接入(三):电信爱游戏支付

    注意事项: 1.电信要求必须先启动电信的闪屏界面 2.非网络游戏不允许有Interent权限 3.电信没有提供测试计费点(小于一元的),文中index1是一个真实计费点(2元),支付会进行真实计费 A ...

最新文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 西南科技大学 - 西科二队
  2. node-mongo封装
  3. 【WC2014】紫荆花之恋【替罪羊思想】【动态点分树】【替罪羊树】
  4. 通过挂载系统光盘搭建本地yum仓库的方法
  5. 男子趁前女友熟睡翻开眼皮,刷脸转走15万!支付宝:几率很小
  6. 删除购物车ajax js,在购物车中使用ajax在woocommerce中移除产品
  7. Windows8在激烈竞争的平板电脑市场的优势与特色---移动3G时代失落的windows开发人员的福音...
  8. require(): open_basedir restriction in effect. 解决方法
  9. Java基础篇:一个简单的类
  10. 【基础】网络常见的9大命令,非常实用!
  11. ASP.net校友录毕业设计(源代码+论文+开题报告+答辩PPT)ASP.NET小型证券术语解释及翻译系统的设计与开发(源代码+论文)
  12. QTcpServer. QTcpSocket. QUdpSocket之间的区别
  13. POI 报错问题:Merged region A15 must contain 2 or more cells
  14. Raisecom 交换机防止ARP欺骗攻击及防止多个DHCP服务器方法
  15. 相对免赔额和绝对免赔额是什么意思,有什么区别?
  16. 网页设计与制作常考概念以及问答题
  17. FLUENT操作--VOF模型局部初始化的TUI命令
  18. 毕业设计 基于单片机的小型简易录音机
  19. CMake编译Nginx源码
  20. dllexport和dllimport

热门文章

  1. 第三方登录-wechat
  2. 跨域配置、https配置
  3. Linux基金会超级记账本开发框架和工具
  4. 单目标优化,多目标优化,数值优化,组合优化
  5. 系统架构师笔记——计算机网络
  6. 【Swish】Mac 触控板手势窗口管理工具
  7. 基于 Spring Boot 2.x 使用 Activiti 创建一个简易的请假流程
  8. nodejs爬虫与python爬虫_node爬虫实践总结
  9. 使用C#版本GDAL读取复数图像
  10. Arduino小音响