博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android支付之银联支付
阅读量:5279 次
发布时间:2019-06-14

本文共 3101 字,大约阅读时间需要 10 分钟。

先导入jar包

 

android银联支付分成以下三个部分↓

一、从网络开始,获取交易流水号即TN(通过网络请求从后台获取到TN)

跟接口处商量获取方式

 

二、通过银联工具类启动支付插件

UpPayUtils.doStartUnionPayPlugin(this,tn,ConstantValues.MODE);

银联支付工具类

import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.util.Log;import com.unionpay.UPPayAssistEx;import com.xh.boke.ConstantValues;/** * 银联支付工具类 * Created by Administrator on 2015/10/26 0026. */public class UpPayUtils {    private static final String TAG = "UpPayUtils";    /**     * 调用银联支付     * @param activity 活动页     * @param tn 流水号     * @param mode 启动环境     */    public static void doStartUnionPayPlugin(final Activity activity, String tn, String mode) {        // mMode参数解释:        // 00 - 启动银联正式环境        // 01 - 连接银联测试环境        int ret = UPPayAssistEx.startPay(activity, null, null, tn, mode);        if (ret == ConstantValues.PLUGIN_NEED_UPGRADE || ret == ConstantValues.PLUGIN_NOT_INSTALLED) {            // 需要重新安装控件            Log.e(TAG, " plugin not found or need upgrade!!!");            AlertDialog.Builder builder = new AlertDialog.Builder(activity);            builder.setTitle("提示");            builder.setMessage("完成购买需要安装银联支付控件,是否安装?");            builder.setNegativeButton("确定",                    new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialog, int which) {                            UPPayAssistEx.installUPPayPlugin(activity);                            dialog.dismiss();                        }                    });            builder.setPositiveButton("取消",                    new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialog, int which) {                            dialog.dismiss();                        }                    });            builder.create().show();        }        Log.e(TAG, "" + ret);    }}

 

三、处理银联手机支付控件返回的支付结果

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {        if (data == null) {        return;    }    /*     * 支付控件返回字符串:success、fail、cancel 分别代表支付成功,支付失败,支付取消     */    String str = data.getExtras().getString("pay_result");    if (str.equalsIgnoreCase("success")) {        Toast.makeText(this, "支付成功!", Toast.LENGTH_SHORT).show();    } else if (str.equalsIgnoreCase("fail")) {        Toast.makeText(this, "支付失败!", Toast.LENGTH_SHORT).show();    } else if (str.equalsIgnoreCase("cancel")) {        Toast.makeText(this, "您取消了订单支付!", Toast.LENGTH_SHORT).show();    }    }

 

下面是银联的配置信息

public class ConstantValues {        /** 银联支付 */    public static final int PLUGIN_VALID = 0;//已经安装银联插件    public static final int PLUGIN_NOT_INSTALLED = -1;//未安装银联插件    public static final int PLUGIN_NEED_UPGRADE = 2;//需要重新安装银联插件    /** mMode参数解释: "00" - 启动银联正式环境 "01" - 连接银联测试环境 */    public static final String MODE = "01";    }

 

另外,在Android Manifest.xml 里面添加以下权限与代码

 

 

注意:调用银联支付需要银联插件的支持,在assets文件夹中放入,在代码中已经有检测功能,这样可免下载安装

 

转载于:https://www.cnblogs.com/kangweifeng/p/4910994.html

你可能感兴趣的文章
LeaFlet中切片图层使用自定义坐标系
查看>>
docker安装升级linux内核(2.6.32->3.12.17)
查看>>
JavaScript原型链memo
查看>>
springboot 中使用事务
查看>>
jquery 获取table当前行值
查看>>
Linux网络配置之虚拟网卡的配置(ubuntu 16.04)
查看>>
django之允许外部机器访问
查看>>
关于C#中接口的概念
查看>>
在bochs上运行的第一个操作系统
查看>>
算法复习——矩阵树定理(spoj104)
查看>>
java基础——JDBC链接数据库的步骤
查看>>
legend2---开发日志14(游戏对用户友好的设计思路)
查看>>
java中string和int的相互转换
查看>>
生成不重复的随机数 C#语法
查看>>
经典网络结构(LeNet , AlexNet , VGG , GoogLeNet)剖析
查看>>
SPOJ - POLYNOM Polynomial(数论乱搞)题解
查看>>
一段C#代码,模拟IIS功能。
查看>>
sqlite内存数据库链接字符串
查看>>
nginx专题
查看>>
Jendins+svn+maven+tomcat自动化部署环境搭建
查看>>