iOS 集成银联支付

作者: 南栀倾寒 | 来源:发表于2015-07-23 16:11 被阅读17746次

    写在开头 iOS开发者 群532084214 给大家提供一个交流技术 也可以聊天打屁的平台

    当初集成支付宝的时候 觉得见了这么丑的代码 加上这么难找的下载地址 在配上几乎为零的文档 寒哥就要吐血了
    下午去集成银联 才知道 血吐的早了

    • 下载地址

    https://open.unionpay.com/upload/download/Development_kit85427986.rar
    其实我找了半个小时 也不知道怎么就下载好了 这个我在Chrome的下载记录里找到的

    解压之后会有这样的目录结构

    Paste_Image.png

    文档在下面 sdk在upmp_iPhone里面

    Paste_Image.png

    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 宏;(这个可能是遗留的问题 我就没写 不报错)

    Paste_Image.png

    4、 调用插件

    1. 在需要调用支付控件的源文件内引用头文件 UPPayPlugin.h 或 UPPayPluginPro.h(注意:如果工程的 compile source as 选项的值不是 Objective–C++,则引用此头文件的文件类型都要改为.mm)

    2. 通过调用

    • (BOOL)startPay:(NSString)tn mode:(NSString)mode
      viewController:(UIViewController*)viewController delegate:(id<UPPayPluginDelegate>)delegate;
      实现控件的调用
    1. 处理支付结果
      银联手机支付控件有三个支付状态返回值: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 的路径设置,看设置路径是否正确

    1. 添加 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

    相关文章

      网友评论

      • 森碟儿:您好,下载地址失效啦
      • d981d894b327:我用那个连接没有下载到,没有找到文档之类的,能给我发一份吗?谢谢。
        邮箱773743813@qq.com
        可可的小白鼠:@丶Myl 你有自己做的demo没,发我一份吧:419501149@qq.com
      • 94b1426e57df:银联的那个demo是不是只能在真机下测试,用模拟器会报错
      • aa3a820cc976:你知道应该如何集成日本的银联支付吗?
      • 兔宰子:的确藏得好深好深
      • hfk:请问如果有多个订单号同时支付要怎么处理?
      • 然也然也:写的还是不够通俗易懂,我反正是看不懂,哥们,你亲自指导一下
      • zhao1zhihui:怎么弄啊还是有点不懂
      • 码修:收藏这么久项目终于用到银联支付了
        zhao1zhihui:@码修 求demo啊! 银联的怎么集成啊
        码修:@zhao1zhihui :sweat: 没看到回复 这是比较老的版本了 现在是新版本 比支付宝简单
        zhao1zhihui:@码修 和支付宝比起来那个难
      • 盲神:寒哥 为什么我调不出去支付控件啊 控制台输出 whose view is not in the window hierarchy! "This app is not allowed to query for scheme uppaywallet" 需要设置哪呢
        盲神:@妹Show 解决了 是需要删除一个scheme 你百度吧 多查查就找到了 我当时也是百度出来出来的
        636ccfc89aac:@Dream晗晗 您好 上面的那个错误 你解决了么?我今天也遇到了 找不到原因 纠结...
      • 2fad5dd74c07:可以更新一下 手机控件支付开发包(IOS版)3.2.4 的集成流程么..我觉得我快崩溃了
      • hrscy:和银联给的文档写的差不多...https://open.unionpay.com/ajweb/help/file2/getAll
      • PM_Irwin:这个真不错~ 蒽。不错。
      • 570d439ae602:寒哥 这玩意在哪里下载呀?
        南栀倾寒:@570d439ae602 文章有个链接
      • 孙沪stupid:你们好基情啊,么么哒 :kissing_heart:
      • 南栀倾寒:@疗效显著 。。。你在我的群里吗?
        Lucas汪星人:@南栀倾寒 群号多少啊。。让我加下呗。。
      • 南栀倾寒:@疗效显著 你是哪个哥?☺
        疗效显著:@南栀倾寒 我是你的粉丝
      • 疗效显著:寒哥依旧很赞! :+1:

      本文标题:iOS 集成银联支付

      本文链接:https://www.haomeiwen.com/subject/qvzpqttx.html