集成 Union Pay - 银联支付
作者感言
前面已经把
WeChat SDK的支付,AliPay SDK搞得七七八八了, 接下来就是银联支付的Union Pay SDK.
最后:
如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考你们的意见再进行修改, 联系我时, 请备注Union Pay SDK如果觉得好的话, 希望大家也可以打赏一下~嘻嘻~祝大家学习愉快~谢谢~
简介
银联嘛, 用过银行卡的人都懂的, 我们大天朝的产物, 主要是用来联合大天朝各个银行, 实现各个银行互通, 可跨行, 跨区, 跨境使用等等....其实换了一句话来说, 就是中国版的
VISA,MasterCard, 虽然银联起步的比较晚, 但发展的脚步不比VISA,MasterCard要差.
准备工作
在这里, 我不得不吐槽一下, 如果是第一次集成银联的童鞋, 估计一开始还真是够呛的, 或许你连
SDK都找不到在哪里下载, 这网站还真的很难找, 所以我在这里贴出来给你们了, 方便各位童鞋们自行去查找下载商家技术服务
这里还有怎么去查找SDK的示例, 大家也看看呗





这里我下载下来的是3.3.3版本, 54.8MB大小, 或许之后银联会继续更新SDK包, 这个的话, 大家看着办吧~~
废话来一段
惯例, 继续来一段废话, 打开我们之前的集成
WeChat SDK和AliPay SDk的工程, 新建一个工程叫做UnionPay-Objective-C的新工程

配置工程
配置工程的话, 首先我们要引入
Union Pay SDK的依赖包, 一共五个, 这或许是第三方支付品台里需要导入最少依赖的.
- LocalAuthentication.framework
- SystemConfiguration.framework
- CoreGraphics.framework
- CFNetwork.framework
- libz.tbd

然后呢, 我们需要去到
Info.plist里, 添加三个属性
- App Transport Security Settings
- Allow Arbitrary Loads
- Application requires iPhone environment
- LSApplicationQueriesSchemes
- uppaysdk
- uppaywallet
- uppayx1
- uppayx2
- uppayx3

接下来, 我们要去添加
URL Schemes了,

最后, 就是我们要把
Union Pay SDK导进来了, 这样子就配置好整个工程了, 顺带说一声, 这个SDK在paymentcontrol这个目录下~

差点别忘了把
-ObjC这个宏加上, 不然没法跑

布局UI界面
惯例, 这里我们也是只给一个
UIButton以及一个Action事件.

补充多一个点
这里还需要补充一个点, 由于银联是采用
C、C++以及Objective-C混编的, 所以这个有些蛋疼, 官方提供三种方式去适配, 我这里采用了最简单的一种, 直接把.m改成.mm.
第一种
由于支付控件使用到了
C、C++和Objective-C混编的情况,所以商户工程引入UPPaymentControl.h头文件以后可能会出现链接错误,这个时候可以通过以下三种方式解决:
将涉及到引用
UPPaymentControl.h的源文件的后缀名都改为.mm;如果商户不想修改源文件的后缀名,可以在工程中添加一个空的继承自
NSObject的类,并将文件.m后缀名该改为.mm即可方法为New File->Objective-C class->类名自取->保存->修改后缀名为.mm;将工程的
compile source as选项的值设置为Objective–C++;
第二种
- 由于在Demo工程中添加了自定义的库文件
libPaymentControl.a,当编译Demo工程时,应该检查工程设置Search Paths里的Framework Search Paths、Header Search Paths、Library Search Paths的路径设置,看设置路径是否正确,另外还要注意里边是否多余一些不确定的路径。
第三种
- 将
Xcode工程中Build Setting->Apple LLVM compiler Language标签下的C++ Language Dialect和C++ Standard Library属性值修改为Compiler Default如实在无法解决,尝试添加-ObjC宏的地方修改为-force_load+空格+控件路径,如:-force_load $(PROJECT_DIR)/ libPaymentControl.a,如果还报错,上下文应该会有libPaymentControl.a文件找不到异常,比如ld: file not found: /Users/apple/Desktop/Communication 2/ libPaymentControl.a clang: error: linker command failed with exit code 1 (use -v to see invocation)请确定libPaymentControl.a文件确实存在于此路径,可能为上下文路径配错。
实现银联支付
集成的时候, 这里我们需要分为两个步骤, 一个是网络, 一个是本地操作.
本地部分
所谓的本地部分, 指的就是弹框, 灭框的一些操作, 还有发起网络一些点击事件等等.

网络部分
银联支付需要用到一个网络交互的流程, 这里的话, 我们直接引用
Demo里的代码, 然后再加以修改一丢丢, 就可以了~

测试支付
在测试支付这点上, 微信和银联都做的挺不错的, 唯独支付宝这个连个测试账号都不提供, 真的是蛋疼...疼...疼, 打开银联接入指南, 里面就会有两个测试卡号.
| 测试账号 | 测试信息 |
|---|---|
| 姓名 | 张三 |
| 手机号码 | 18100000000 |
| 证件类型 | 01身份证 |
| 证件号 | 510265790128303 |
| 招商银行卡 | 6226090000000048 |
| 密码 | 111101 |
| 验证码 | 123456(先点获取验证码之后再输入) |
| 测试账号 | 测试信息 |
|---|---|
| 姓名 | 张三 |
| 手机号码 | 18100000000 |
| 证件类型 | 01身份证 |
| CVN2 | 248 |
| 有效期 | 1219 |
| 证件号 | 510265790128303 |
| 华夏银行贷记卡 | 6226388000000095 |
| 密码 | 111101 |
| 验证码 | 123456(先点获取验证码之后再输入) |
最终效果

工程地址
项目地址: https://github.com/CainRun/PayProject
集成 Union Pay - 银联支付的更多相关文章
- 集成 Union Pay - 银联支付--ios
请看这个网址,谢谢谢 http://www.cnblogs.com/oc-bowen/p/6000389.html
- iOS支付宝,微信,银联支付集成封装调用(下)
一.越来越多的app增加第三方的功能,可能app有不同的页面但调用相同的支付方式,例如界面如下: 这两个页面都会使用第三方支付支付:(微信,支付宝,银联)如果在每一个页面都直接调用第三方支付的接口全部 ...
- iOS支付宝,微信,银联支付集成封装(上)
一.集成支付宝支付 支付宝集成官方教程https://docs.open.alipay.com/204/105295/ 支付宝集成官方demo https://docs.open.alipay.com ...
- iOS----支付(微信支付、支付宝支付、银联支付控件集成支付)(转)
资料 支付宝 //文档idk都包含了安卓.iOS版 银 联 银联官网资料 Demo Demo给了一个订单号,做测试使用,若出现支付失败什么的,可能是已经被别人给支付了,或者是服务器订单过期了 ~ 一. ...
- 李洪强iOS开发支付集成之银联支付
iOS开发支付集成之银联支付 银联官网在这里,这里能下载SDK或者是看文档.最新的版本写的简单了很多,看文档一直做下去基本上就没问题了. 首先,SDK在这里下载,里面包含需要的库文件和详细的文档. 银 ...
- iOS开发 支付之银联支付集成
iOS开发之银联支付集成 最近在做支付这一块的东西,就记录下来以便以后参考和各位交流学习,这里是银联支付 银联官网在这里,这里能下载SDK或者是看文档.文档嘛,对银联来说,还是不要看的太仔细的好,以前 ...
- Android集成银联支付,提示java.lang.UnsatisfieldLinkError错误
尽管解决方法很简单,但还是记录一下吧. 最近做银联支付(Android),官方给的demo是eclipse的.按照官方(https://open.unionpay.com/ajweb/product) ...
- iOS 集成银联支付(绕过文档的坑,快速集成)-转
本文是投稿文章,作者:南栀倾寒当初集成支付宝的时候,觉得见了这么丑的代码,加上这么难找的下载地址,在配上几乎为零的文档,寒哥就要吐血了. 下午去集成银联,才知道血吐的早了. 下载地址:https:// ...
- iOS 集成银联支付
下载地址:https://open.unionpay.com/upload/download/Development_kit85427986.rar 其实我找了半个小时 也不知道怎么就下载好了 这个我 ...
随机推荐
- Vi编辑器下使用分屏显示【已自己验证所有】
:new 水平分割出一个新窗口 :vnew,:vne 垂直分割出一个新窗口 :new+文件路径/文件名; 在新的水平分屏中 载入/新建 文件.[文件存在则载入,不存在则在指定的路径新建,下同] :vn ...
- [HRBUSTOJ1476]Pairs(FFT)
题目链接:http://acm-software.hrbust.edu.cn/problem.php?id=1476 题意:给n个数,m次询问,每次询问一个k.问n个数里两数之和严格小于k的数对. 根 ...
- bzoj 1467: Pku3243 clever Y 扩展BSGS
1467: Pku3243 clever Y Time Limit: 4 Sec Memory Limit: 64 MB[Submit][Status][Discuss] Description 小 ...
- js 监听监键盘动作(转)
主要分四个部分 第一部分:浏览器的按键事件 第二部分:兼容浏览器 第三部分:代码实现和优化 第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydo ...
- Ext.net 异常统一管理,铥掉可恶的 Request Failure
Ext.net 异常统一管理,铥掉可恶的 Request Failure 看着这样的框框是不是很不爽 灭他.也不难.. .如果全部页面都有继承一个自定义的父类 ..那整个项目代码量就只有几行了.. 单 ...
- Nginx基础知识之————Nginx 环境的搭建?
本课时主要给大家讲解如何在 Linux 系统下搭建 Nginx 和 Nginx 搭建过程中常见问题的知识,并结合实例让学员掌握 Nginx 环境的搭建. 下载解压: 安装gcc-c++ 从新配置文件: ...
- JCO事务管理
/* * 标准对账单过账 * @account 标准对账单号 * @year 年度 */ public List<String> doAccountStatmentPost(String ...
- 应用部署到JBOSS上遇到的问题
原来应用在WAS7.0下,移植到JBOSS eap5.1.2下后,遇到了一些问题,特此记录: 1.数据源配置 在was中,datasource中获取数据源名称时,直接写was中配置的数据源名称即可.而 ...
- Java面向对象深度
局部内部类 package ch6; /** * Created by Jiqing on 2016/11/21. */ public class LocalInnerClass { // 局部内部类 ...
- Docker-网络基础配置
从外部访问容器 指定容器端口随机映射主机端口 [root@wls12c /]$ docker run -p -d --name web tomcat /bin/bash -c /root/apache ...