iOS客户端连接易宝支付接口

项目中接入了第三方的易宝支付,客户端需要查询用户绑定的银行卡,并进行解绑,所以需要直接请求易宝支付的java接口,过程中遇见了坑,特此记录。

接口文档说明如下:

接口文档关于传参的逻辑看结尾java代码。看了半天,终于理清了逻辑:

1.就是商户号和标识进行hmac拼接,hmac里面有一层加密;

需要传递的参数拼接成字符串,然后进行md5+密钥加密,赋值给hmac参数。

重点:单纯的进行md5加密是不可以的,必须+密钥。

2.进行customernumber、userno、hmac三个参数的AES加密操作;

把三个参数以字典转json字符串的形式,+密钥(取密钥前16位)进行AES加密。

重点:

1)我们在网上搜到的AES加密,算法类型都是kCCOptionPKCS7Padding,但是java接口的算法类型是ECB,这个bug不太容易发现,如果加密不对,就会导致后台解析错误。

2)后台需要的Data数据是16进制的,但是我们一般进行AES加密完之后的是NSData数据,一般会在进行Base64转换,这时我们需要改下,取消Base64转换,直接NSData转换成16进制数据。

3.就是设置data和customernumber传参了。

4.接口需要的参数很简单,所以写起来并不复杂,主要就是加密没问题,传参就没问题。

备注:易宝支付的接口文档中结尾附了一段java代码,附下图:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 11,586评论 5 29
  • 首先罗列一些知识点: 1.加密算法通常分为对称性加密算法和非对称性加密算法:对于对称性加密算法,信息接收双方都需事...
    JonesCxy阅读 1,434评论 2 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 2,717评论 0 6
  • 日精进打卡第40天 【知~学习】 《六项精进》1遍共40遍 《大学》1遍共40遍 【经典名句分享】 23天养成一个...
    土土的怪妈咪阅读 177评论 0 0