iOS 集成银联支付
转自:http://www.jianshu.com/p/92d615f78509
当初集成支付宝的时候 觉得见了这么丑的代码 加上这么难找的下载地址 在配上几乎为零的文档 寒哥就要吐血了
下午去集成银联 才知道 血吐的早了
- 下载地址
https://open.unionpay.com/upload/download/Development_kit85427986.rar
其实我找了半个小时 也不知道怎么就下载好了 这个我在Chrome的下载记录里找到的
解压之后会有这样的目录结构
文档在下面 sdk在upmp_iPhone里面
1、 SDK 说明
SDK 分为以下两个版本:1 支持纯无卡交易静态库,以下简称UPPayPlugin,包含文件:
UPPayPlugin.h
UPPayPluginDelegate.h
libUPPayPlugin.a
2 支持纯无卡交易和 VIPOS 音频口支付静态库,以下简称 UPPayPluginPro,
包含文件:
UPPayPluginPro.h
UPPayPluginDelegate.h
libUPPayPluginPro.a
3、 添加 SDK 包
a) 根据商户选择的SDK版本,将sdk/inc目录和sdk/libs目录下对应版本的三个文件添加到 UPPayDemo 工程中;
b) 如 果 你 选 择 的 是 UPPayPlugin 版 本 , 添 加 QuartzCore.framework 、Security.framework 到工程中;
c) 如 果 你 选 择 的 是 UPPayPluginPro 版 本 , 添 加 QuartzCore.framework 、AudioToolbox.framework, CoreAudio.framework 、 MediaPlayer.framework,AVFoundation.framework 和 Security.framework 到工程中;
d) 在工程的 Build Settings 中找到 Other Linker Flags 中添加-ObjC 宏;(这个可能是遗留的问题 我就没写 不报错)
4、 调用插件
在需要调用支付控件的源文件内引用头文件 UPPayPlugin.h 或 UPPayPluginPro.h(注意:如果工程的 compile source as 选项的值不是 Objective–C++,则引用此头文件的文件类型都要改为.mm)
通过调用
- (BOOL)startPay:(NSString)tn mode:(NSString)mode
viewController:(UIViewController*)viewController delegate:(id<UPPayPluginDelegate>)delegate;
实现控件的调用
- (BOOL)startPay:(NSString)tn mode:(NSString)mode
处理支付结果
银联手机支付控件有三个支付状态返回值:success、fail、cancel,分别代表:支付成功、支付失败、用户取消支付。这三个返回状态值以字符串的形式作为回调函数参数(NSString)result 返回。通过在工程中添加头文件“UPPayPluginDelegate.h”,在处理交易结果的界面,实现 UPPayPluginDelegate接口,根据该头文件中的回调函数:-(void)UPPayPluginResult:(NSString)result来实现回调方法,从而可以根据支付结果的不同进行相关的处理。
1.将 xcode 工程中 Build Setting -> Apple LLVM compiler Language 标签下的 C++ Language Dialect 和 C++ Standard Library 属性值修改为 Compiler Default
2.将涉及到引用 UPPayPlugin.h 的源文件的后缀名都改为.mm;
3.参照demo,检查工程设置 Search Paths 里的 Framework Search Paths、Header Search Paths、Library Search Paths 的路径设置,看设置路径是否正确
- 添加 QuartzCore.framework、AudioToolbox.framework, CoreAudio.framework、 MediaPlayer.framework, AVFoundation.framework 和 Security.framework
5.工程的 Build Settings 中找到 Other Linker Flags 中添加-ObjC 宏;
上面提到的几点网上都可以找到,如果已经正确设置,还是编译不通过,那么赶紧检查下 项目targets 对应的sdk版本,选择7.0以下的,目前银联的sdk貌似还不支持7.0,
注
银联支付目测只需要2个参数 1 tn 其实就是订单号 2 mode 是测试环境还是线上环境
和支付宝不同的是 支付宝要求本地把订单的信息书写完毕 调起sdk支付即可 银联是我把一些生成订单的信息 如 付款方 收款方 订单描述 金额等信息传递到服务器 由服务器生成一个订单号 然后客户端调起sdk进入支付
mode 竟然是个死的字符串 真是醉了"00"
表示线上环境"01"
表示测试环境返回的代理结果 更是坑爹 :success、fail、cancel,分别代表:支付成功、支付失败、用户取消支付
测试环境 账号
提供测试使用卡号、手机号信息(此类信息仅供测试,不会发生正式交易)招商银行预付费卡:卡号:6226 4401 2345 6785密码:111101
原文链接:http://www.jianshu.com/p/92d615f78509
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
转载于:https://www.cnblogs.com/feiyu-mdm/p/5802301.html
iOS 集成银联支付相关推荐
- iOS 集成银联支付swift
① 首先添加银联支付的SDK到项目中,如图: ② 由于类库使用的C++编写,所以需要写一个插件而且是用OC来写,如图: ③ 然后创建OC与swift的桥接文件,并且引入头文件. ④ 在支付页面调用支 ...
- Android集成银联支付最新版3.8.5(银联真NM坑)
Android集成银联支付(银联真N&M坑) 1.这是银联Android 开发包的下载地址开发包下载地址 2.下载完里面的内容是这样的 3.其实调起来银联支付(云闪付),就一句代码,其他的都是 ...
- PHP 集成银联支付
现如今支付系统几乎成了许多网站必不可少的东西,那么常见的几种支付方式:支付宝.微信:关于 支付宝 .微信 的实现方式在 世界上最好用的 Alipay 和 WeChat 的支付 SDK 这篇文章有介绍, ...
- Android开发:app工程集成银联支付功能(客户端)
Android开发:app工程集成银联支付功能(客户端) email:chentravelling@163.com 上一篇博文完成了服务器端的集成,可参考: Android开发:app工程集成银联支付 ...
- iOS 集成微信支付
前言 最近在进行的项目,需要集成第三方支付.业务需要集成支付宝,微信,银联,Paypal等支付方式.在使用各家sdk时会发现有些第三方sdk调用时不够方便,简单.所以就有了进行再次封装的想法. 资源文 ...
- Android集成银联支付
银联支付是继支付宝于微信支付之后的第三大支付方式,如果你已经看过前两篇博文,学会支付宝和微信的支付集成方法,接下来,银联支付就很简单了. 支付宝支付流程博文 http://blog.csdn.net/ ...
- Android开发:app工程集成银联支付功能(服务器端)
一功能描述 二实现过程 1下载银联支付SDK和Demo 1银联商家服务地址httpsopenunionpaycomajwebindex 2下载的文件如下 2集成过程 1先试官方Demo 2集成到自己的 ...
- iOS集成微信支付--Swift
微信支付在微信红包的推动发展势头越来越猛,甚至有超过支付宝的趋势,那么在App集成微信支付也是比不可少了.我最近在一个项目中集成微信支付遇到了不少问题,Google了不少资料才搞定,不得不吐槽一下微信 ...
- IOS集成微信支付或者支付宝支付功能小结
2019独角兽企业重金招聘Python工程师标准>>> 第一,你需要有微信开发平台的开发者账号,(网址https://open.weixin.qq.com/,或者自行百度" ...
最新文章
- linux开发神器--Tmux
- Hbase的读写流程
- 2 年来,每个人最该感谢的,是坚持学习、用心分享的自己
- linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx
- JavaFX技巧5:可观察
- sublime text 3安装及使用
- android 重叠view 重叠布局,按比例布局
- 如何判断注册用户是否已经存在(membership验证)
- Nginx中间件web服务安装
- iOS UITextField限制输入字数
- [HTML] 表单和输入
- iPhone安装ipa的方法(iTunes,PP助手)
- 注册控件失败之一:提示0x80040200错误的处理办法
- 2006年~2011年记事简要
- R2-React之ES6基础
- Ubuntu14.04安装GNOME3桌面
- Directory Opus一款功能强大的资源管理器
- seurat中报错Error: Cannot add a different number of cells than already present
- FIL能涨到多少?2021FIL价格预测
- vue2中vant实现网易云音乐案例-附带所有源码
热门文章
- 一个很有深度的C++内存问题---GDB调试(一)
- Unable to execute dex: Multiple dex files define 解决方法
- register_sysctl_table实现内核数据交互
- [ECMAScript] 举例说明你对es6的class的理解
- React开发(281):一定是路由错误
- Taro+react开发(89):封装为一个函数渲染
- [html] 如何让img自动适应div容器大小?
- 1社会心理学---感知情境
- [css] 怎么才能让图文不可复制?
- [css] 在实际编写css中你有遇到过哪些浏览器兼容性的问题?怎么解决的?