android支付之银联支付
2015-10-26 13:51
597 查看
先导入jar包UPPapAssistEx
android银联支付分成以下三个部分↓
一、从网络开始,获取交易流水号即TN(通过网络请求从后台获取到TN)
跟接口处商量获取方式
二、通过银联工具类启动支付插件
银联支付工具类
三、处理银联手机支付控件返回的支付结果
下面是银联的配置信息
另外,在Android Manifest.xml 里面添加以下权限与代码
注意:调用银联支付需要银联插件的支持,在assets文件夹中放入银联插件,在代码中已经有检测功能,这样可免下载安装
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); } }
三、处理银联手机支付控件返回的支付结果
@Override protected 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 里面添加以下权限与代码
<!-- 银联的权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 银联支付 --> <activity android:name="com.unionpay.uppay.PayActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" android:excludeFromRecents="true" android:windowSoftInputMode="adjustResize"> </activity>
注意:调用银联支付需要银联插件的支持,在assets文件夹中放入银联插件,在代码中已经有检测功能,这样可免下载安装
相关文章推荐
- Android 对话框【Dialog】去除白色边框代码
- Android开发常用工具类
- Android--动画Animation
- Android四个基本组件(2)之Service 服务与Content Provider内容提供商
- NativeActivity通过jni调用java层的Android API
- Android studio集合
- android 随机数Random
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android实现带动画的下拉刷新RecyclerView
- Android 手势滑动,多点触摸放大缩小图片
- android入门---Activity组件.活动(一)
- Context
- 【每日一点】android VideoView
- 即时聊天IM之三 XMPP协议客户端库的和Android端框架概述
- android布局的问题----有些布局始终置底
- Android 使用Websocket
- 调用系统自带浏览器的方法
- ActiveAndroid的建表跟踪
- Android消息通信之无所不能的第三方开源项目EventBus
- android开发游记:自定义实现图片轮播器和启动页面滚动