您的位置:首页 > 移动开发 > Android开发

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

2016-12-12 10:59 357 查看
注意事项:

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

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

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

 

[html] view
plain copy

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
plain copy

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
plain copy

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
plain copy

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 支付宝