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

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

注意事项:

1.电信要求必须先启动电信的闪屏界面

2.非网络游戏不允许有Interent权限

3.电信没有提供测试计费点(小于一元的),文中index1是一个真实计费点(2元),支付会进行真实计费

[html] view plaincopy

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.blogfordx.MainActivity"
            android:label="@string/app_name" >  

        </activity>  

        <!-- 电信 -->
<activity android:name="cn.game189.sms.SMS" android:theme="@android:style/Theme.Dialog" android:screenOrientation="portrait" ></activity>
<!-- 电信 -->
<!-- 启动闪屏界面 -->
<activity
            android:name="com.example.blogfordx.EgameSplash"
            android:configChanges="orientation"
            android:screenOrientation="portrait"
            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>
        </activity>
    </application>  

    <!-- 单机游戏不能有Internet等无关权限,若有特殊要求,平台申请时注明,审核通过后方可添加 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SEND_SMS" />  

MainActivity.java

[java] view plaincopy

  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支付接入(三):电信爱游戏支付

时间: 2024-12-20 17:36:25

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

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

做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现.目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支付.那么大家要思考了,为什么微信支付和支付宝支付能作为大多数公司接入的首选呢?其实这个问题大多小伙伴应该是很清楚的,说白了就是人家有庞大的用户流量,目前微信在国内的用户已突破10亿,支付宝也接近8亿左右,如此庞大的用户群体,你还会选择其他的第三方支付(微博钱包.财付通.快钱等)吗,作为普通客户,大家都希望能方便快捷,谁会为了在一个平台买点

聚合支付好用吗?聚合支付优势

我们的支付方式正在发生巨大的变革,未来移动支付会成为我们日常消费和支付等业务的主角.但是支付渠道多如牛毛,"碎片化"程度越来越深,在此背景下锋锐聚合支付顺应时代发展的需求,为消费者和商户提供灵活性.便捷性的支付服务一举登上历史舞台.那聚合支付有哪些优势呢?优势一:碎片化第三方支付渠道和移动支付方式的"分散性"是聚合支付存在的一个根本因素.不能轻松满足客户需求,不能快速实现服务,这意味着放弃客户,商家需要支付以满足客户支付痛点,而且还需要一个安全方便的收银工具来减少成

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

原地址:http://blog.csdn.net/simdanfeg/article/details/9011863 上篇博文跟大家一起走了一遍支付宝支付,今天我们来看看移动支付.众所周知目前付费通道的龙头老大还要当属三大运营商(移动.联通.电信).运营商接入代码相对简单,但琐碎的要求太多,涉及到启动界面.桌面图标.主界面.退出界面等.移动游戏基地后台地址:http://g.10086.cn/ 部分截图 注意事项: 1.移动游戏基地sdk为动态打包,即公司信息,计费点信息都是在申请计费点的时候提

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

今天跟大家一起看下Google的in-app Billing V3支付. 如果没有GooglePlay此处附上安装Google Play的一键安装器的链接(需要Root权限):http://www.muzhiwan.com/com.muzhiwan.gsfinstaller-86095.html 之前用过Google BillingV2,感觉不太爽.V2版支付走的是异步通知,不能即时得到支付结果,支付.查询接口太过复杂,还有就是没找到RestoreOrder接口,因此选择使用V3版,网上大部分都

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

原地址:http://blog.csdn.net/simdanfeg/article/details/9012031 注意事项: 1.联通支付是不需要自己标识软硬计费点的,当平台申请计费点的时候会提交每个计费点是否允许重复支付(即软硬计费点),支付时我们只需要传入相应的计费点即可,平台会帮我们记录哪个是软计费点,哪个是硬计费点. 2.联通需将premessable.txt文件copy到工程assets目录下,用来配置渠道,每个渠道对应不同的渠道号,例如联通渠道号为:“00012243”. 3.游

Android支付接入(一):支付宝

原地址:http://blog.csdn.net/simdanfeg/article/details/9011603 转载之前我想深深地感谢屌丝哥 相信相同过App获取利润的都会需要接入计费SDK,下边就跟大家走一遍完整的支付宝SDK接入,支付系列均通过计费Button触发,计费所有代码均放到一个java文件实现,这样虽然会有点违背java面向对象及封装性,但这样做的一个好处是可以快速集成到不同的游戏中,将改动的文件降到最低,各有利弊吧,如果大家有什么更好的方法,望一起交流,好了,废话不多说了,

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

原地址:http://blog.csdn.net/simdanfeg/article/details/9012083 前边已经陆续跟大家走了一遍运营商和支付宝付费接入,今天跟大家一起看看机锋网的支付接入.其实付费接入本身并没有太多需要注意的地方,做的多了以后你会发现套路都是大同小异的.而需要注意的地方在于怎么跟游戏兼容及后期的维护,包括增减支付方式.现在谈下我个人理解(说的不对希望大家猛喷),付费界面及逻辑尽量不要给一个单独的Activity,因为 1.界面的频繁跳转会费时(尤其对于用cocos

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

因为公司需要接入Google的应用内支付(即Google的in-app Billing V3),接入过程中查阅了很多的文章,也遇到很多的问题.故此想和大家分享及交流一下心得,好了废话不多说了下面我们开始接入google的应用内支付. 第一步:准备工作 首先想要使用google的支付,首先必须要有一部安装了google play服务的测试机,在这里提供了三个方法: 1)如果有小米的测试机最好因为小米的系统完整的保留了google play服务. 2)如果没有可以看下此处附上的连接:http://z

Android调用微信登陆、分享、支付

前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也有个找资料的地方. 一.微信登陆分三个步骤: 1).微信授权登陆  2).根据授权登陆code 获取该用户token  3).根据token获取用户资料  4).接收微信的请求及返回值 如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面3步操作: a. 在你的包名相应目录