Android支付接入(二):移动游戏基地

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


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

  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Android应用接入微信支付,您需要按照以下步骤进行操作: 1. 在微信支付开放平台注册账号并登录。前往微信支付开放平台(https://pay.weixin.qq.com/)注册一个账号,并进行登录。 2. 创建应用并获取应用ID。在开放平台创建一个应用,并获取到对应的应用ID,这是后续接入过程中的重要标识。 3. 配置应用信息。在应用管理页面填写应用的基本信息,包括应用名称、AppID、支付回调URL等。确保信息填写准确无误。 4. 下载SDK和文档。在开放平台下载对应的微信支付SDK和接入文档,以便后续进行接入操作。 5. 导入SDK到Android项目。将下载的微信支付SDK导入到您的Android项目中,可以使用Gradle或手动导入的方式进行集成。 6. 配置权限和签名。在AndroidManifest.xml文件中添加必要的权限声明,并确保应用的签名信息与在微信支付开放平台注册时填写的一致。 7. 实现支付功能。根据微信支付开放平台提供的接入文档,按照要求实现支付功能的相关代码逻辑。 8. 发起支付请求。在合适的时机,通过调用微信支付SDK提供的API发起支付请求,并传递必要的订单信息和回调参数。 9. 处理支付结果回调。在您的应用中处理微信支付结果的回调通知,根据返回的支付结果状态进行相应的处理操作。 10. 测试和上线。在开发阶段进行测试,确保支付流程和结果正常。待测试通过后,提交应用上线并进行发布。 请注意,以上只是一个大致的流程概述,具体的接入步骤和代码实现会因应用的具体需求和技术栈而有所差异。建议您仔细阅读微信支付开放平台提供的官方文档,并根据文档中的指引进行接入操作。如果遇到问题,可以参考文档中的常见问题解答或联系微信支付开放平台的技术支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值