Android-银联支付

银联支付也是一般比较常用的支付功能,这里简单了介绍android app如果短期快速应用这一方面的东西。直接上代码:

1.导入银联支付的依赖包:

2.在res目录下增加资源包:

3.配置AndroidManifest.xml文件配置打开的activity:

<activity
            android:name="com.unionpay.uppay.PayActivity"
            android:configChanges="orientation|keyboardHidden"
            android:excludeFromRecents="true"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustResize" />

至此,我们的项目环境就搭好了.(以上资料文件,请查看银联测试文档目录的androiddemo);

银联支付代码3步骤:

1.获取TN号  2.请求控件界面(PayActivity)

3.ActivityResult处理支付结果(但该结果并不一定正确 ,因为银联系统通过异步返回给服务器和我们的app是同时异步的)

以下 我以测试接口为例

/**
 *		UnionPay Test
 *
 * 	@author Lean  @date:2014-8-8
 */
public class MainActivity extends Activity implements Runnable {

	private String mMode = "01";//设置测试模式:01为测试 00为正式环境
	private static final String TN_URL_01 = "http://202.101.25.178:8080/sim/gettn";//自己后台需要实现的给予我们app的tn号接口

	private Handler mHandler=new Handler(){

		public void handleMessage(android.os.Message msg) {

	        String tn = "";
	        if (msg.obj == null || ((String) msg.obj).length() == 0) {
	            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
	            builder.setTitle("错误提示");
	            builder.setMessage("网络连接失败,请重试!");
	            builder.setNegativeButton("确定",
	                    new DialogInterface.OnClickListener() {
	                        @Override
	                        public void onClick(DialogInterface dialog, int which) {
	                            dialog.dismiss();
	                        }
	                    });
	            builder.create().show();
	        } else {
	            tn = (String) msg.obj;
	            doStartUnionPayPlugin(MainActivity.this, tn, mMode);
	        }
		}
	};

	/**
	 * 	启动支付界面
	 */
	public void doStartUnionPayPlugin(Activity activity, String tn, String mode) {
        UPPayAssistEx.startPayByJAR(activity, PayActivity.class, null, null,
                tn, mode);
    }

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		new Thread(MainActivity.this).start();

	}

	@Override
	public void run() {
		String tn = null;
		InputStream is;
		try {

			String url = TN_URL_01;

			URL myURL = new URL(url);
			URLConnection ucon = myURL.openConnection();
			ucon.setConnectTimeout(120000);
			is = ucon.getInputStream();
			int i = -1;
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			while ((i = is.read()) != -1) {
				baos.write(i);
			}

			tn = baos.toString();
			is.close();
			baos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

		Message msg = mHandler.obtainMessage();
		msg.obj = tn;
		mHandler.sendMessage(msg);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (data == null) {
			return;
		}
		String msg = "";
		/*
		 * 支付控件返回字符串:success、fail、cancel 分别代表支付成功,支付失败,支付取消
		 */
		String str = data.getExtras().getString("pay_result");
		Log.v("zftphone", "2 "+data.getExtras().getString("merchantOrderId"));
		if (str.equalsIgnoreCase("success")) {
			msg = "支付成功!";

		} else if (str.equalsIgnoreCase("fail")) {
			msg = "支付失败!";

		} else if (str.equalsIgnoreCase("cancel")) {

			msg = "用户取消了支付";
		}
		//支付完成,处理自己的业务逻辑!
	}

}

Tip:做这个的时候,你要保证你有个牛比的支持团队能够接受新事物,同时谴责下银联的客服 太垃圾了说!

Android-银联支付

时间: 2024-10-06 00:24:06

Android-银联支付的相关文章

android银联支付

=============================== 准备 1,导入银联支付libs:UPPayAssistEx.jar;UPPayPluginEx.jar; 2,配置mainifest文件的activity:(UPPayPluginEx.jar中)和权限; <activity android:name="com.unionpay.uppay.PayActivity" android:label="@string/app_name" android:

android 银联支付接入报nullexception异常

package com.example.ex_example; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; impo

android支付之银联支付

先导入jar包UPPapAssistEx android银联支付分成以下三个部分↓ 一.从网络开始,获取交易流水号即TN(通过网络请求从后台获取到TN) 跟接口处商量获取方式 二.通过银联工具类启动支付插件 UpPayUtils.doStartUnionPayPlugin(this,tn,ConstantValues.MODE); 银联支付工具类 import android.app.Activity; import android.app.AlertDialog; import android

Android开发:app工程集成银联支付功能(客户端)

Android开发:app工程集成银联支付功能(客户端) email:[email protected] 上一篇博文完成了服务器端的集成,可参考: Android开发:app工程集成银联支付功能(服务器端).这一篇博文完成客户端的集成. 一.功能描述 银联支付流程如下所示: 上一篇尝试了tn的获取,本篇将跑通整个流程. 二.实现部分 先说一下我的IDE是as(Android Studio)+win7 64位 2.1配置,依旧是配置 按照官方说明文档,就可以完成,我在这里贴上结构图,因为as的特殊

Android集成银联支付,提示java.lang.UnsatisfieldLinkError错误

尽管解决方法很简单,但还是记录一下吧. 最近做银联支付(Android),官方给的demo是eclipse的.按照官方(https://open.unionpay.com/ajweb/product)给的步骤,在Android studio中一步一步集成.运行出错,提示 java.lang.UnsatisfieldLinkError: Couldn't load entryexpro from loader dalvik.system.PathClassLoader... 官方文档中也提到了这个

Android开发:app工程集成银联支付功能(服务器端)

一功能描述 二实现过程 1下载银联支付SDK和Demo 1银联商家服务地址httpsopenunionpaycomajwebindex 2下载的文件如下 2集成过程 1先试官方Demo 2集成到自己的工程里 一.功能描述 因为是自己开发了一个app应用,没资格去申请微信支付和支付宝支付,于是就采用了银联支付功能,银联支付分为了两种环境:测试环境和生产环境,一般前期开发的时候都是使用测试环境,数据都是测试数据,不会发生真实交易.第一次做Android项目+IDE为Android Studio+第一

微信支付,支付宝支付,银联支付——三大支付总结

转载:  https://juejin.im/post/596d97576fb9a06bb874a812 银联支付,支付宝支付,微信支付的三大总结,之前也有写过两篇. 微信支付,支付宝支付,银联支付--三大支付总结: http://blog.csdn.net/androidstarjack/article/details/72669394 支付宝植入总结: android 支付宝的植入 <曾经踩过的坑> 微信支付总结: Android 微信支付总结 备注:出于安全考虑,验签我们都是放到后台进行

Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)

Phonegap项目,做支付的时候,当把网站打包到ios或android端成app后,在app上通过wap调用银联在线存在一个问题: 就是当从银联支付成功后,再从服务器返回到app客户端就很难实现. wap银联支付流程是这样:客户端---> 服务器(构建支付请求)--> 银联支付 ---> 返回到服务端(处理支付结果).所以对于手机网站银联支付没有问题,但是对于ios端app和android端app, 再通过wap支付,发现支付成功后,很难在回到app客户端了. 所以这里就必须借助Pho

银联支付总结

支付流程图: Android 客户端   1. 接口说明   upmp_android/UPPayAssistEx.jar包中定义了启动支付控件的接口,接口定义如 下: public static int startPay(Activity activity, String spId,  String sysProvider, String orderInfo, String mode) 参数说明: activity  --用于启动支付控件的活动对象 spId  --保留使用,这里输入null

银联支付

银联支付(1)银联支付流程图 (2)到银联开发者平台下载开发包 (3)安装"UPPayDemo.apk",安装后运行效果如下: (4)打开"中国银联手机支付控件接入指南Android.doc",在这个文档中有测试账号(账号:6226090000000048,验证码:123456),使用测试账号进行测试,结果如下: (5)  "UPPayDemo.apk"对应的源码也在开发包中,这个Demo可以完全支付了说明现在的Demo就已经完全配置好了银联的开