"最近由于公司项目需要集成连连支付,文档写的不是很清楚,遇到了一些坑,因此记录一下,希望能帮到有需要的人。"

前面简单的集成没有遇到什么坑,在此整理一下官方的集成文档,具体步骤如下

导入文件

添加头文件引用

设置link标志Target->Build Setting ,Other Linker Flags 设置为 -all_load
可能添加-all_load以后和其他库冲突,可以尝试使用 -force_load 单独load库, force_load后面跟的是 lib库的完整路径
-force_load $(SRCROOT)//libPaySdkColor.a (*需要按照你的库放置的路径决定)

调用sdk显示,注意retain,自动释放以后,调用后会崩溃

self.sdk = [[[LLPaySdk alloc] init] autorealse]; // 创建
self.sdk.sdkDelegate = self; // 设置回调
NSDictionary* signedDic = [payUtil signedOrderDic:orderParam andSignKey:md5key_or_rsakey] // 加过签名的订单字典
[self.sdk presentPaySdkInViewController:rootVC withTraderInfo:signedDic];

编写结果回调

// 订单支付结果返回,主要是异常和成功的不同状态
- (void)paymentEnd:(LLWalletPayResult)resultCode withResultDic:(NSDictionary *)dic

SDK可配置部分

iOS SDK可以通过修改资源bundle进行定制, 因为是在bundle里面,请在修改好以后clean proj,这样才会生效。

1、图片的替换,在内部的图片可以替换修改位自己的样式

2、颜色等的修改,可以修改default.css文件,支持#abcdef,123,123,123两种颜色表示

3、修改值意义列表

导航栏颜色:替换shoushi3.png文件,以及修改css文件中NavBar字段(后面只表示字段,都是在default.css文件中)中的background-color
导航栏标题:NavBar字段中的titleIconName; titleText

注意有点坑的是这里,这是非第一次付款时弹出框的定制,框子的背景不能改,只能修改下颜色来和app搭配下

修改的地方如下截图:


![Uploading lianlianzhifu01_768352.png . . .]

确认按钮:#a-button
取消按钮:#b-button
文本框:UITextField
弹出对话框的确认字体颜色: #TX-3

官方原来的效果是下面这样的:

lianlianzhifu01.png

修改后是这样的:

lianlianzhifu02.png

参数字段部分

参数说明在demo中有,可以参考。字段名和wap不一致,请参考demo中的参数说明,参数中的user_id 不是商户号,是商户自己体系中的用户编号,前置卡输入时,no_agree是通过API查询得到的绑卡序号

使用部分

Demo中的输入项,是用来测试各种支付条件,包括认证支付(输入姓名,身份证),前置支付(输入卡号,协议号)。不是必须,请根据自己的支付方式测试。
支持银行数量,是根据支付类型以及商户来,可以配置,请联系运营。
支付的验密方式(短信,手势码,支付密码)需要通过我们的服务器人员配置的,请联系相关服务器对接人员。

常见问题

签名请尽量使用服务器端签名,假如使用客户端签名,请使用Demo中的payutil

1、运行直接崩溃

答:sdk没有retain保管。

2、sdk中使用了类扩展,请在other link flag中添加 -all_load

3、提示初始化错误

答:1、检查环境和商户号等是否匹配;2、检查签名方法是否正确(参考签名工具);3、订单信息是否有遗漏项;

4、初始化常见错误提示,解释,以及应对方法

1、所传的类型不是NSString
解释:连连的订单需要传入的订单格式为{“strkey”: “strvalue”, “strkey1″ : “strvalue2“},请不要传递 {“key”: [v1, v2]} 或者 {“key”: {“ikey”:”v”}} 这种
应对,修改订单内值的格式,特别是risk_item,需要变成 {“risk_item”:”{\”r_key\”:\”v\”}”}这样

2、商户无此支付产品权限

解释:我们的产品分为认证支付、快捷支付等多种支付方式。一种支付方式对应的包、支付调用方法、商户号都有所不同。
应对:先检查商户号是否是正确的商户号,比如 <认证支付测试商户号 201408071000001543> <快捷支付测试商户号 201408071000001546>
然后检查所对应的包或者调用方法对不对。在iOS中,已经提取了专门的调用方法。

// 快捷支付
- (void)presentQuickPaySdkInViewController:(UIViewController*)viewController withTraderInfo:(NSDictionary*)traderInfo;
// 认证支付
- (void)presentVerifyPaySdkInViewController:(UIViewController*)viewController withTraderInfo:(NSDictionary*)traderInfo;

3、商户无此支付权限
解释:一个商户号对应的商品业务类型是有限的。
应对:修改 商户业务类型 busi_partner 是 String(6) 虚拟商品销售:101001
实物商品销售:109001
外部账户充值:108001

4、签名验证不对
解释:签名有特定规则,订单里面的特定参数参与签名。
应对:ios最新的Demo中提供了payUtil函数,直接调用,就能生成签名正确的订单。然后再次提醒,我们墙裂建议商户在服务器端完成签名操作。

支付成功之后,不需要做额外的处理,后台那边通过回调地址已提交了,但集成的时候字典里边传的notify_url为服务器的回调地址,此地址为后台人员集成连连支付时给。

后面持续遇到到坑有必需申请商户产品配置表如下图:


![Uploading lianlianzhifu03_844594.png . . .]

还有连连通银商户配置表如下图:

lianlianzhifu03.png

最最坑爹的是“风险控制参数”,需要8个之多,而demo才写了一个,也没说要写其他的,参数如下:

/*
frms_ware_category *商品类目(固定2009)
user_info_mercht_userno 商户用户唯一标识(token)
user_info_bind_phone 绑定手机号(已有)
user_info_dt_register 注册时间
user_info_full_name 用户注册姓名(认证姓名)
user_info_id_no 用户注册证件号码
user_info_identify_state 是否实名认证 1是0非
user_info_identify_type 实名认证方式
*/

版权归©Bison所有 如需转载请保留原文超链接地址!否则后果自负!

 
文/Bison(简书作者)
原文链接:http://www.jianshu.com/p/64468fbe04ab
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

iOS开发--Bison详解连连支付集成简书的更多相关文章

  1. iOS开发——Block详解

    iOS开发--Block详解 1. Block是什么 代码块 匿名函数 闭包--能够读取其他函数内部变量的函数 函数变量 实现基于指针和函数指针 实现回调的机制 Block是一个非常有特色的语法,它可 ...

  2. iOS开发:详解Objective-C runTime

    Objective-C总Runtime的那点事儿(一)消息机制 最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题.当然还有一些其他问题也几乎 ...

  3. iOS开发-Runtime详解

    iOS开发-Runtime详解 简介 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的.比如: [recei ...

  4. iOS开发——MVC详解&Swift+OC

    MVC 设计模式 这两天认真研究了一下MVC设计模式,在iOS开发中这个算是重点中的重点了,如果对MVC模式不理解或者说不会用,那么你iOS肯定学不好,或者写不出好的东西,当然本人目前也在学习中,不过 ...

  5. IOS开发之----详解在IOS后台执行

    文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 ...

  6. iOS开发-NSURLSession详解

    Core Foundation中NSURLConnection在2003年伴随着Safari浏览器的发行,诞生的时间比较久远,iOS升级比较快,AFNetWorking在3.0版本删除了所有基于NSU ...

  7. iOS开发之详解正则表达式

    本文由Charles翻自raywenderlich原文:NSRegularExpression Tutorial: Getting Started更新提示:本教程被James Frost更新到了iOS ...

  8. iOS开发-Runtime详解(简书)

    简介 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的.比如: [receiver message]; // ...

  9. iOS开发CAAnimation详解

    Core Animation,即为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能.Core Anima ...

随机推荐

  1. Python实现kMeans(k均值聚类)

    Python实现kMeans(k均值聚类) 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需,不画图可不必) 计算过程 st=>start: 开始 e=> ...

  2. java中字符串String 转 int(转)

    java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...

  3. html标记列表应用

    一.[ul]无序列表 1.无序列表====== 二.[ol]有序列表 1.有序列表用于段落有序的排列, <ol> <li>内容</li> </ol> 三 ...

  4. vs2013中把解决方案上传到SVN服务器

    在VS2013中直接上传代码到SVN服务器,在这之前,必须是你的电脑已经安装了TortoiseSVN. 其次,VS2013必须安装AnkhSVN插件.然后才可以向我下面所述一样使用TortoiseSV ...

  5. CS小分队第一阶段冲刺站立会议(5月8日)

    昨日成果:优化了扫雷游戏,解决了界面随格子数改变却不能缩小的bug,另外改写了程序,能使用户在点下第一个雷时再生成代码,防止第一步踩到地雷. 遇到的困难:主要就是考虑扫雷需不需要有一个存档,这个存档用 ...

  6. 团队开发之《极速蜗牛》NABC分析

    一.简介 项目名称:极速蜗牛 特点:操作简单,视觉与听觉配合,让用户有最完美的体验. 二.NABC分析 N(need):在人们无时无刻离不开手机的今天,难免有无聊的时候,此刻一款操作简单又能令人们动脑 ...

  7. 团队项目NABC分析

    我们的团队项目是“来用”实用工具集合软件,我针对我们项目功能丰富的特点进行NABC分析. N (Need 需求):我们的软件正是从最大程度上满足用户需求出发,因为软件集合了不同种类的功能,可以满足用户 ...

  8. 数码管字符产生器GenSym 1.0发布

    本软件可以实现以下功能: 1.支持共阴极和共阳极数码管的字符代码的生成. 2.支持C语言和ASM语言方式产生字符串代码的序列. 3.可定制数码管的最高位和最低位的代码产生次序. 4.支持记忆功能,可以 ...

  9. Posix线程编程指南(5) 杂项

    在Posix线程规范中还有几个辅助函数难以归类,暂且称其为杂项函数,主要包括pthread_self().pthread_equal()和pthread_once()三个,另外还有一个LinuxThr ...

  10. poj 2711 Leapin' Lizards && BZOJ 1066: [SCOI2007]蜥蜴 最大流

    题目链接:http://poj.org/problem?id=2711 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1066 Your p ...