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

2017-05-16  本文已影响0人  捕梦少女的梦想

项目中接入了第三方的易宝支付,客户端需要查询用户绑定的银行卡,并进行解绑,所以需要直接请求易宝支付的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代码,附下图:

上一篇 下一篇

猜你喜欢

热点阅读