原地址:http://blog.csdn.net/simdanfeg/article/details/9011977

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

MainActivity.java

  1. package com.example.blogfordx;  
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.View; public class MainActivity extends Activity { @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    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);
    }
    });
    findViewById(R.id.button2).setOnClickListener(
    new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    // 更多游戏接口
    Uri uri = Uri
    .parse("http://wapgame.189.cn/c/index.html");
    Intent in = new Intent(Intent.ACTION_VIEW, uri);
    MainActivity.this.startActivity(in);
    }
    });
    } } EgameSplash.java: [java] view plaincopy package com.example.blogfordx; import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle; public class EgameSplash extends Activity {
    private int count = 0; @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    new Thread(new Runnable() {
    @Override
    public void run() {
    // TODO Auto-generated method stub
    while (count <= 2) {
    count++;
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    Intent intent = new Intent(EgameSplash.this, MainActivity.class);
    startActivity(intent);
    EgameSplash.this.finish();
    }
    }).start();
    }
    } Fiap.java [java] view plaincopy package com.example.blogfordx; import cn.game189.sms.SMS;
    import cn.game189.sms.SMSListener;
    import android.app.Activity;
    import android.os.Handler;
    import android.util.Log;
    import android.widget.Toast; public class Fiap {
    private Activity mActivity;
    // 是否允许重复计费
    private boolean isRepeat;
    // 计费点短代码
    private String charge_Point;
    // 道具名称
    private String itemID = "";
    // 支付金额
    private int coin = 0; public Fiap(Activity activity) {
    mActivity = activity;
    } // index是三种计费点对应的标识
    // 此处只有购买200兑换币是可支付的,正式使用时请填写自己的申请的计费点短代码
    public void android_Pay(int index) {
    switch (index) { case 0:
    // 激活游戏
    isRepeat = false;
    // 此处计费点填写电信平台申请的计费点的后三位作为计费点索引
    charge_Point = "000";
    itemID = "激活游戏";
    coin = 4;
    break;
    case 1:
    isRepeat = true;
    charge_Point = "0211C001271102517996991102517990080115127000000000000000000000000000";
    itemID = "购买200兑换币";
    coin = 2;
    break;
    case 2:
    isRepeat = true;
    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) {
    if (SMS.checkFee(itemID, mActivity, new SMSListener() { public void smsOK(String feeName) {
    // 短代发送成功,此处填写支付成功后的逻辑
    Log.i("SMSListener", "模式" + feeName + "已计费完成,关卡已打开.");
    Toast.makeText(mActivity, "支付成功", Toast.LENGTH_LONG)
    .show();
    } public void smsFail(String feeName, int errorCode) {
    // 短代发送失败,不给道具或不放行关卡
    Log.e("SMSListener", "计费失败!模式:[" + feeName + "] 错误码:"
    + errorCode);
    } public void smsCancel(String feeName, int errorCode) {
    Log.e("SMSListener", "用户点击取消!计费点:" + feeName + " 错误码:"
    + errorCode);
    }
    }, charge_Point, itemID + ",点击确定将会发送一条" + coin + "元短信,不含信息费.",
    "短信已成功发送", isRepeat)) {
    // 已计过费 }
    }
    };
    }; }
 

电信的计费sdk接入完成

Android支付接入(三):电信爱游戏支付的更多相关文章

  1. 微信支付之扫码、APP、小程序支付接入详解

    做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现.目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支付.那么大家要思考了,为什么微信支付和支 ...

  2. Android 支付宝接入时常见的问题

    1.概述 首先说明下,Android支付宝接入用的是快捷支付,下载地址是https://b.alipay.com/order/techService.htm    支付宝移动接入地址https://b ...

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

    原地址:http://blog.csdn.net/simdanfeg/article/details/9011863 上篇博文跟大家一起走了一遍支付宝支付,今天我们来看看移动支付.众所周知目前付费通道 ...

  4. 亲历H5移动端游戏微信支付接入及那些坑(三)——支付接入

    终于到接入支付了,小小的一个微信支付,居然也写了3篇,好长,好累. 接入环境 对接入环境,前端的话,应该是以js为主吧,也有可能是,PHP,Java,C++,或者C#都可以.为什么在此特意提一下接入环 ...

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

    原地址:http://blog.csdn.net/simdanfeg/article/details/9012031 注意事项: 1.联通支付是不需要自己标识软硬计费点的,当平台申请计费点的时候会提交 ...

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

    前段时间有事请耽搁了,今天跟大家一起看下Google的in-app Billing V3支付.    如果没有Google Play此处附上安装Google Play的一键安装器的链接(需要Root权 ...

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

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

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

    原地址:http://blog.csdn.net/simdanfeg/article/details/9012083 前边已经陆续跟大家走了一遍运营商和支付宝付费接入,今天跟大家一起看看机锋网的支付接 ...

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

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

随机推荐

  1. 配置对IIS上tabular的 HTTP 访问

    上周网管说某部门一同事用的自家电脑办公,操作系统是正版win8家庭版,不能加入公司域,求解如何访问数据仓库. 以前一直以为只有域内用户才能使用数据仓库,没办法有问题总要给人解决,一味地推脱不但会影响其 ...

  2. 第四十三篇、利用NSProxy解决NSTimer内存泄漏问题

    问题描述: 用NSTimer来实现每隔一定时间执行制定的任务,例如最常见的广告轮播图.如果我们在 timerWithTimeInterval:1 target:self 中指定target为当前控制器 ...

  3. WF4.0 基础篇 (十八) Flowchar

    本节主要介绍WF4 中 Flowchart的使用 本文例子下载: http://files.cnblogs.com/foundation/FlowcharSample.rar 本文例子说明 Flowc ...

  4. css3学习笔记之文本效果

    CSS3的文本阴影 CSS3中,text-shadow属性适用于文本阴影. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <!DOCTYPE html ...

  5. css笔记--web端小于1px设计的处理方法

    HTML代码 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  6. 分布式之高性能IO组件

    因为毕业设计(实时分析大型数据流),开始对分布式并行计算做研究,第一个问题就是通讯.高性能的通讯是整个系统性能的基本保障. 方案 就目前的经验来讲,最好的通信选择是:异步非阻塞IO + 资源池. 异步 ...

  7. GDB 进行调试 使用心得

    GDB 进行调试 使用心得 转 1: 对于在应用程序中加入参数进行调试的方法:   直接用 gdb app -p1 -p2 这样进行调试是不行的.   需要像以下这样使用:    #gdb app   ...

  8. TreeView递归取值

    string jingyuan = ""; string jinghui = ""; private void DiGui(TreeNode tn) { if ...

  9. C# Redis实战

    转自  :http://blog.csdn.net/qiujialongjjj/article/details/16945569 一.初步准备 Redis 是一个开源的使用ANSI C 语言编写.支持 ...

  10. 【转】【C#】无边框窗体移动的三种方法

    1. 重写WndProc protected override void WndProc(ref Message m) { const int WM_NCHITTEST = 0x84; const i ...