Android-银联支付开发

转自:http://blog.csdn.net/qq285016127/article/details/38435585


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

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


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


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

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. <activity  
  2.             android:name="com.unionpay.uppay.PayActivity"  
  3.             android:configChanges="orientation|keyboardHidden"  
  4.             android:excludeFromRecents="true"  
  5.             android:label="@string/app_name"  
  6.             android:screenOrientation="portrait"  
  7.             android:windowSoftInputMode="adjustResize" />  
至此,我们的项目环境就搭好了.(以上资料文件,请查看银联测试文档 目录的androiddemo);


银联支付代码3步骤:

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

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


以下 我以测试接口为例

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. /** 
  2.  *      UnionPay Test 
  3.  * 
  4.  *  @author Lean  @date:2014-8-8   
  5.  */  
  6. public class MainActivity extends Activity implements Runnable {  
  7.   
  8.     private String mMode = "01";//设置测试模式:01为测试 00为正式环境  
  9.     private static final String TN_URL_01 = "http://202.101.25.178:8080/sim/gettn";//自己后台需要实现的给予我们app的tn号接口  
  10.   
  11.     private Handler mHandler=new Handler(){  
  12.           
  13.         public void handleMessage(android.os.Message msg) {  
  14.   
  15.             String tn = "";  
  16.             if (msg.obj == null || ((String) msg.obj).length() == 0) {  
  17.                 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);  
  18.                 builder.setTitle("错误提示");  
  19.                 builder.setMessage("网络连接失败,请重试!");  
  20.                 builder.setNegativeButton("确定",  
  21.                         new DialogInterface.OnClickListener() {  
  22.                             @Override  
  23.                             public void onClick(DialogInterface dialog, int which) {  
  24.                                 dialog.dismiss();  
  25.                             }  
  26.                         });  
  27.                 builder.create().show();  
  28.             } else {  
  29.                 tn = (String) msg.obj;  
  30.                 doStartUnionPayPlugin(MainActivity.this, tn, mMode);  
  31.             }  
  32.         }  
  33.     };  
  34.       
  35.     /** 
  36.      *  启动支付界面 
  37.      */  
  38.     public void doStartUnionPayPlugin(Activity activity, String tn, String mode) {  
  39.         UPPayAssistEx.startPayByJAR(activity, PayActivity.classnullnull,  
  40.                 tn, mode);  
  41.     }  
  42.       
  43.       
  44.     @Override  
  45.     protected void onCreate(Bundle savedInstanceState) {  
  46.         super.onCreate(savedInstanceState);  
  47.         setContentView(R.layout.activity_main);  
  48.   
  49.         new Thread(MainActivity.this).start();  
  50.   
  51.     }  
  52.   
  53.       
  54.     @Override  
  55.     public void run() {  
  56.         String tn = null;  
  57.         InputStream is;  
  58.         try {  
  59.   
  60.             String url = TN_URL_01;  
  61.   
  62.             URL myURL = new URL(url);  
  63.             URLConnection ucon = myURL.openConnection();  
  64.             ucon.setConnectTimeout(120000);  
  65.             is = ucon.getInputStream();  
  66.             int i = -1;  
  67.             ByteArrayOutputStream baos = new ByteArrayOutputStream();  
  68.             while ((i = is.read()) != -1) {  
  69.                 baos.write(i);  
  70.             }  
  71.   
  72.             tn = baos.toString();  
  73.             is.close();  
  74.             baos.close();  
  75.         } catch (Exception e) {  
  76.             e.printStackTrace();  
  77.         }  
  78.           
  79.         Message msg = mHandler.obtainMessage();  
  80.         msg.obj = tn;  
  81.         mHandler.sendMessage(msg);  
  82.     }  
  83.   
  84.     @Override  
  85.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  86.         if (data == null) {  
  87.             return;  
  88.         }  
  89.         String msg = "";  
  90.         /* 
  91.          * 支付控件返回字符串:success、fail、cancel 分别代表支付成功,支付失败,支付取消 
  92.          */  
  93.         String str = data.getExtras().getString("pay_result");  
  94.         Log.v("zftphone""2 "+data.getExtras().getString("merchantOrderId"));  
  95.         if (str.equalsIgnoreCase("success")) {  
  96.             msg = "支付成功!";  
  97.               
  98.         } else if (str.equalsIgnoreCase("fail")) {  
  99.             msg = "支付失败!";  
  100.               
  101.         } else if (str.equalsIgnoreCase("cancel")) {  
  102.               
  103.             msg = "用户取消了支付";  
  104.         }  
  105.         //支付完成,处理自己的业务逻辑!  
  106.     }  
  107.   
  108. }  

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38498.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

西米支付:支付宝/微信支付/银联支付通道的接入介绍

本文以电脑网站支付为例&#xff0c;着重对第三方支付通道的接入进行了分析&#xff0c;包括支付宝支付接入、微信支付接入及银联支付接入。 1、支付宝支付接入 支付宝支付能力主要有当面付、刷脸付、App支付、手机网站支付、电脑网站支付和花呗分期等&#xff0c;本文采用电脑…

网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明

一、网关支付 这是在线支付的最普遍形式。 大致支付过程&#xff1a;第三方支付公司作为代理&#xff08;网关&#xff09;&#xff0c;接入一堆银行。用户在网关页面&#xff08;可以在商户端&#xff0c;也可以第三方支付平台端&#xff09;选择银行&#xff0c;页面跳转到第…

HTB soccer

title: HTB_soccer description: HTB靶机 难度&#xff1a;easy date: 2023-05-31 categories: [渗透,靶机] HTB soccer 如果图片转载有问题移步&#xff1a;https://qing3feng.github.io/2023/05/31/HTB%20soccer/ 信息收集 ┌──(kali㉿kali)-[~] └─$ sudo nmap --min…

提高WhatsApp营销效果(1):文案篇

// 综述 在WhatsApp上做营销&#xff0c;最主要有四个因素会影响到转化的效果 分别是&#xff1a; ■ WhatsApp的发送者 ■ 文案 ■ 投放时段 ■ 目标号码 对于发送者来讲&#xff0c;主要影响因素是发送者所在的国家、头像和昵称。 投放时段来讲&#xff0c;自然是在用…

港联证券|半导体接棒AI走强 科创50指数领涨

周四&#xff0c;A股三大指数大幅低开&#xff0c;随后反弹并环绕上一买卖日收盘指数打开震动。沪指收报五连阳&#xff0c;半导体概念股团体大涨带动科创50指数走强&#xff0c;4月以来科创50指数已涨超6%。CPO概念股继续活泼&#xff0c;贵金属板块涨幅居前&#xff0c;AI使用…

【汇正财经】沪深创集体红盘,算力股全线爆发

盘面回顾&#xff1a; 大盘日K线收星涨0.31%&#xff0c;深成指涨0.61%&#xff0c;创业板冲高翻绿再弹起&#xff0c;收盘涨0.2%。CPO概念股午后继续大涨&#xff0c;算力概念股全线爆发&#xff0c;AI芯片、ChatGPT概念、电商概念等科技板块交投活跃&#xff0c;酒店餐饮、钙…

微信小程序会员卡开发跳坑

看了一下文档&#xff0c;大概是这样一个函数&#xff0c;可以让用户领取会员卡 wx.navigateToMiniProgram({appId: wxeb490c6f9b154ef9, //固定为此 appid&#xff0c;不可改动extraData: data, // 包括 encrypt_card_id, outer_str, biz三个字段&#xff0c;须从 step3 中获…

使用uni-app生成微信小程序踩的坑

毕设要求写一个浏览器端&#xff0c;一个APP端&#xff0c;一个微信端&#xff0c;刚开始以为要学三个技术然后写三个客户端&#xff0c;后来知道了uni-app这个神器&#xff0c;一次编写就可以编译生成APP、H5以及各种小程序版本的客户端。然而我比较熟悉的是web的前端开发&…

uni-app APP端-微信登录流程

uni-app APP端-微信登录流程 手把手教学 1.前期准备 在微信开放平台注册账户 微信开放平台 (qq.com)在管理中心中创建移动应用项目&#xff0c;按要求填写相关信息审核通过后即可获得我们所需的 AppID和AppSecret然后才uniapp项目中填写&#xff0c;在manifest.json中的App模…

微信小程序开发笔记 进阶篇②——多个微信小程序一个用户体系,同一个UnionID

目录 一、前言二、微信开放平台绑定小程序三、微信小程序login和getUserInfo四、后台请求auth.code2Session五、后台解密开放数据 一、前言 微信小程序开发笔记——导读 二、微信开放平台绑定小程序 微信官方文档&#xff1a;UnionID 机制说明 我们目前有一个微信开放平台&am…

微信小程序登录,包括uniapp的微信小程序登录

代码&#xff1a; 样式&#xff1a; <button click"login">登入</button> 事件&#xff08;methods中&#xff09;&#xff1a; login() {//判断缓存中是否有用户数据&#xff08;也就是判断有没有登录&#xff09;if (!uni.getStorageSync(encrypte…

桔子拓客是什么?

桔子拓客软件是一款安装在手机上APP智能营销软件&#xff0c;启动软件后可不停的活跃帐号&#xff0c;推送作品给指定的人群&#xff0c;指定区域&#xff0c;以此来达到精准曝光&#xff0c;定向引流&#xff0c;帮助用户实现流量的暴增&#xff01; 桔子拓客软件采用非入侵式…

做一个和瑞幸咖啡一样的小程序,就能3月赚24亿了吗?

2017年我开了一家咖啡店&#xff0c;疫情之前门店生意还比较惬意和滋润&#xff0c;没想到这疫情突如其来&#xff0c;一度要关门大吉。 后来偶然间看到瑞幸咖啡的年度报表&#xff0c;还有5月24日&#xff0c;瑞幸咖啡公布了2022年第一季度业绩&#xff0c;总净收入为24.046亿…

揭秘爆款的小程序,为何一黑到底

文章目录 前言⛳️ 1.什么是小程序?⛳️ 2.小程序发展史⛳️ 3.小程序原理⛳️ 4.如何开发微信小程序⛳️ 5.小程序的学习资源⛳️ 6.第一个微信小程序 前言 小程序&#xff0c;由于其便捷的操作&#xff0c;以及丰富的功能&#xff0c;已经普及到了生活中的各个领域,有很多人…

开始第一个基于uni-app的微信小程序开发

微信小程序 uni-app开发工具创建uni-app项目运行项目页面显示以及调试 uni-app uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、H5、以及各种小程序&#xff08;微信/支付宝/百度/头条/QQ/钉钉/淘宝&#…

微信小程序开发大坑盘点

微信小程序开发大坑盘点 起因 前几天心血来潮&#xff0c;想给学校设计个一站式校园小程序&#xff0c;可以查询成绩&#xff0c;考试信息&#xff0c;课表之类的&#xff08;本来想法里是还想包括一些社交功能的&#xff0c;但这个因为资质问题暂且搁置了&#xff09;。其实…

那些年我们在微信小程序遇到的坑

前言 本篇主要记录一下我在开发中遇到的小程序的坑&#xff0c;还有实现的功能。 避坑 坑一&#xff1a;开发工具配置 &#xff08;1&#xff09;控制台如果报proxy代理相关错误&#xff0c;先检查左上角菜单栏中设置>代理设置>使用系统代理 &#xff08;2&#xff09…

使用uniapp微信公众号和小程序踩坑全过程

什么是微信公众号&#xff1f;它的本质是什么 什么是微信公众号 微信公众平台&#xff0c;简称公众号。曾命名为“官号平台”、“媒体平台”、微信公众号&#xff0c;最终定位为“公众平台”。 微信公众号包含了&#xff1a;订阅号&#xff0c;服务号和企业号&#xff0c;各…

多端开发框架uni-app入坑指南,一套代码适用微信、头条等小程序

前言 hello 小伙伴们&#xff0c;现在我已经正式入坑 uni-app 了。uni-app 已经发布好几个月了&#xff0c;期间也是踩坑无数&#xff0c;但是官方秉承着不抛弃不放弃的精神&#xff0c;积极解决开发者的各种简单的、复杂的问题&#xff0c;在此表示感谢。我想还有小伙伴正在持…

基于uniapp开发 微信小程序登陆页面一

此微信登陆页面是参考uniapp开发文档 uniapp一键登录和button组件中的getphonenumber方法 代码展示 <template><view class"login-container"><buttonclass"btn-login"open-type"getPhoneNumber"getphonenumber"handleLog…