集成银联3.3.0

项目最近需要集成银联,在网上搜了一下发现都并不是最新版的银联集成教程,自己摸索了一下,总结写了下来。

附上3.3.0的下载网址 https://open.unionpay.com/upload/download/手机控件支付开发包(IOS版)3.3.3.rar 文件解压后在
/app开发包/控件使用指南/ 可以得到官方写的开发文档, /app开发包/控件开发包/ 下可以得到demo和SDK,个人感觉官方文档写的很详细了……大家也可以自己结合文档和Demo自己试下。

一:环境配置 1、3.3.0的银联SDK和之前发生了变化,之前是UPPayPlugin.h UPPayPluginDelegate.h libUPPayPlugin.a一共三个文件,现在精简成UPPaymentControl.h libPaymentControl.a两个文件,当然方法也会有改变。新建工程的话直接将payment control文件夹导入。

_//顺便说一句,我下的Demo会报错的,原因是SDK并没有导入,大家遇到同样的问题可以将 /app开发包/控件开发包/upmpiphone/paymentcontrol 文件夹直接加到Demo里。

导入之后要在Build Settings --> Library Search Paths里对 libPaymentControl.a 路径设置,可以参考 demo,$(PROJECTDIR)/(这里写libs的上层文件夹,所有的==)/libs

2、添加:CFNetwork.framework、SystemConfiguration.framework 、lib系统框架到工程中;

3、 在工程info.plist设置中添加一个URL Types回调协议,用于在支付完成后返回商户客户端;

4、 在Xcode7.0之后的版本中进行开发,需要在工程对应的plist文件中,添加LSApplicationQueriesSchemes Array并加入uppaysdk、uppaywallet、uppayx1、uppayx2、uppayx3五个item。

        <key>LSApplicationQueriesSchemes</key>
             <array>
          <string>uppaysdk</string>
          <string>uppaywallet</string>
          <string>uppayx1</string>
          <string>uppayx2</string>
          <string>uppayx3</string>
             </array>

5、如果工程的compile source as 选项的值不是Objective–C++,则引用此头文件的文件类型都要改为.mm

二、支付方法: 1、- (BOOL)isPaymentAppInstalled 判断设备上是否安装了银联客户端。

2、 - (BOOL)startPay:(NSString)tn fromScheme:(NSString)schemeStr mode:(NSString)mode viewController:(UIViewController)viewController tn是交易流水号,从商户后台得到,商户把用户的订单信息提交给银联,银联返回交易流水号,我们只要从后台得到流水好,调用方法就行; schemeStr:完成支付后,返回自己的应用,在info里的URL
types里设置; mode:固定字符串,测试环境@"01",正式软件版本@"00"; viewController:一般self就行。

3、- (void)handlePaymentResult:(NSURL*)url completeBlock:(UPPaymentResultBlock)completionBlock; 支付过程结束后在AppDelegate里使用,具体见Demo; code:字符串,success,cancel,fail简单易懂; data:用来校验签名。

  • (BOOL) application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    [[UPPaymentControl defaultControl] handlePaymentResult:url completeBlock:^(NSString code, NSDictionary data) {

    //结果code为成功时,先校验签名,校验成功后做后续处理
    if([code isEqualToString:@"success"]) {
    
        //判断签名数据是否存在
        if(data == nil){
            //如果没有签名数据,建议商户app后台查询交易结果
            return;
        }
    
        //数据从NSDictionary转换为NSString
        NSData *signData = [NSJSONSerialization dataWithJSONObject:data
                                                           options:0
                                                             error:nil];
        NSString *sign = [[NSString alloc] initWithData:signData encoding:NSUTF8StringEncoding];
    
        //验签证书同后台验签证书
        //此处的verify,商户需送去商户后台做验签
        if([self verify:sign]) {
            //支付成功且验签成功,展示支付成功提示
        }
        else {
            //验签失败,交易结果数据被篡改,商户app后台查询交易结果
        }
    }
    else if([code isEqualToString:@"fail"]) {
        //交易失败
    }
    else if([code isEqualToString:@"cancel"]) {
        //交易取消
    }

    }];

    return YES; }

开发文档还提供了试用卡号、手机号等信息(此类信息仅供测试使用,不会发生真实交易)

招商银行借记卡:6226090000000048 手机号:18100000000 密码:111101 短信验证码:123456(先点获取验证码之后再输入) 证件类型:01身份证 证件号:510265790128303 姓名:张三 华夏银行贷记卡:6226388000000095 手机号:18100000000 CVN2:248 有效期:1219 短信验证码:123456(先点获取验证码之后再输入) 证件类型:01身份证 证件号:510265790128303 姓名:张三 以上就是银联的集成,很简单。

水平所限,有错误求指正。

时间: 2024-10-30 03:07:18

集成银联3.3.0的相关文章

Web 的未来:XHTML 2.0

web|xhtml 多年以来,HTML只是在不断变大,却从未变小,因为新版本必须维护向后兼容性.这一情况将得以改变.XHTML 2.0的第一个工作草案于2002年8月5日发布,一大新闻就是取消了向后兼容性:该语言终于得以继续发展.那么,作为一名开发人员您将得到什么回报呢?健壮的表单和事件表现如何呢?它们是研究不需要大量 JavaScript 的框架以及甚至层次结构菜单的更佳方法. 本文概述了 XHTML 2.0 中的新增功能以及将来可能会如何使用它.读者应该熟悉 HTML 和/或 XHTML 1

使用PowerBuilder 7.0开发Web应用

Sybase公司的PowerBuilder 7.0 是适用于开发Web 应用的新一代开发工具,利用它可以建立.管理和提交Web应用;使用DataWindow技术,开发人员可以利用现有的PowerBuilder逻辑,把它们重新提交到瘦客户端或HTML JavaScript客户端;容易地集成标准的Web组件和业务逻辑;它与Enterprise Application Server紧密集成,便于开发.管理.调试和提交. 完善的Web开发环境 PowerBuilder 7.0中集成了PowerSite

Sybase SQL Studio 6.0.3程序员指南

前言 本文将从一个数据库程序员的角度介绍sybase公司出品的SQL Anywhere Studio(SAS) 6.0.3 for Linux的特征.强项.弱项.安装和管理技巧,并给出一个精美的例子.如果你用C语言程序员,你可以从本文介绍的SQLC入门教材获益匪浅. Sybase是SQL数据库管理系统中著名老牌产品之一.事实上,微软的SQL Server最早是一个移植到DOS/Windows平台的Sybase产品.自从两公司分手,Sybase一直专长于Unix系统,当数据库和其他企业应应开发商都

[转帖]TestLink1.6.0安装说明

TestLink是基于Web的,开源的测试管理和执行系统.它可以让测试团队在创建和管理测试用例的同时,在测试计划中对测试用例进行组织.TestLink可以和Bugzilla.Mantis.Jira等缺陷管理工具进行集成.因为网上TestLink的资料很少,考虑到测试用例的管理对于测试过程的有效开展很重要,所以,笔者把在安装TestLink1.6.0中碰到的问题及安装过程的注意事项进行了总结,供同行参考.本文不包括对TestLink的优化及使用说明的介绍,这部分内容将在<TestLink1.6.0

NHibernate3.0剖析:Query篇之NHibernate.Linq标准查询

系列引入 NHibernate3.0剖析系列分别从Configuration篇.Mapping篇.Query篇.Session策略篇.应用篇等方面全面揭示NHibernate3.0新特性和应用及其各种应用程序的集成,基于NHibernte3.0版本.如果你还不熟悉NHibernate,可以快速阅读NHibernate之旅系列文章导航系列入门,如果你已经在用NHibernate了,那么请跟上NHibernate3.0剖析系列吧. NHibernate专题:http://kb.cnblogs.com

二、Angular 2.0开发指南以及搭建开发环境

自第一章讲Angular2.0的简单开发入门,我们了解到ng2的开发实践是围绕着web-component来展开的,ng2中更加强化了Component的概念,弱化了指令的概念(实际上Component是复杂指令).同时我们学习到web-component中数据和视图是如何互相影响的,即Input和Output的概念,数据通过Input往view以及view里的子组件传递,view及其子组件通过Ouput来改变数据(VM通过数据绑定机制实现互通,View <- data-bindings ->

NHibernate3.0剖析:Query篇之NHibernate.Linq自定义扩展

系列引入 NHibernate3.0剖析系列分别从Configuration篇.Mapping篇.Query篇.Session策略篇.应用篇等方面全面揭示NHibernate3.0新特性和应用及其各种应用程序的集成,基于NHibernte3.0版本.如果你还不熟悉NHibernate,可以快速阅读NHibernate之旅系列文章导航系列入门,如果你已经在用NHibernate了,那么请跟上NHibernate3.0剖析系列吧. NHibernate专题:http://kb.cnblogs.com

大新闻!PCIe 4.0正式发布

  虽然晚于预期发布时间,但外围组件互连特别兴趣组(PCI-SIG)终于发布了PCIe 4.0规范,该规范旨在描述在个人计算机与服务器中通过PCI Express I/O总线连接设备的具体技术要求. 行业联盟主席兼总裁Al Yanes在其博客中表示:"PCIe 4.0规范的交付对于我们的规范库而言是一项重要补充,因为该规范能够提供高性能的数据传输速率,每秒可达16 GT与灵活的通道宽度配置,并且能够继续满足业界有关低功耗的要求." 首次于2011年公布的版本4.0将PCIe 3.0(推

张志宇 SERVELET JSP学习讲义-TOMCAT资料以及HTTP1.0\1.1比较

1       Server 1.1         In the Tomcat world, a Server represents thewhole container. Tomcat provides a default implementation of the Serverinterface., and this is rarely customized by users. 1.2         在tomcat的世界里,一个server代表整个容器.Tomcat提供了一个默认的org