最近发现京东的支付接口升级了,原来的接口以及不一样了,就花了点时间做了升级,但是遇到了一些很基础很二的问题,之前的时候接口跳转通知是get方式的,用在原来的支付驱动上面很正常,但是2.0的接口就没法正常的运行了,没办法就重新调整了支付的方式,在集成的过程中,遇到了几个问题,记录一下,也给需要的朋友一个参考吧:
1,京东支付接口(PHP),在构建post提交表单的之前所有的参数必须保证是string类型,一般情况会出错的是支付金额(amount,单位是分)、OrderType(1),很容易就把两个搞错数字相关的类型,在做转换之前就要保证是字符串类型,为了保证都是字符建议所有的参数固定的使用单引号包裹,如果是文本变量,可以在后面链接空字符串例如 $a.'';,数字类型在保证数值正确的情况下可以使用strval转换一下在进行处理。
2,京东支付的文档里面对于userId和userType的说明是可以为空,但是经过多次的测试,当这两个为空的时候就会报错(商户用户ID不能为空等错误),最近咨询了他们的技术服务,告诉我说这两个userId必须(同样需要string类型),userType为固定值“BIZ”,说实话自从京东升级2.0的接口之后就发现,真心是伤不起,文档和技术回复差别真是大,如果想顺利的完成,建议直接找他们技术集成,不要自己看文档了,真心不对,也不修正很无奈。
3,其他的比较麻烦的就是各种转换了,字符串转成16进制,在结合公钥,私钥加密解密,这个用sdk里面带的函数就可以,反正就是好多,不多说了,其他的仔细一点就还好了。
4,密钥的生成,RSA公钥一个,还有一个pksc8的私钥,这个要注意,私钥有两个要用pksc8的,这个和一些其他的支付接口使用的还是有区别的。
5,密钥生成之后公钥自己保留,pksc8的私钥放到自己程序所在服务器供发起支付OpenSSL加密使用,公钥要使用京东支付提供的公钥,不能使用自己生成的,同样放到自己程序所在的服务器供支付成功回调后OpenSSL解密使用。
最主要的还是string类型的参数,一定要注意!
我的微信:graent_hu
欢迎扫码加我的微信好友,有什么问题我们可以一起探讨,有什么需要也随时欢迎发消息给我~
转载请注明出处:
本文链接:https://www.wlyc.cn/post-65.html