Jeepay支付踩坑
1、问题:回调验签失败
我使用jeepay下单支付时回调数据验签失败,
官方标准返回数据
验签规则:用sign以外的值进行排序,然后和密钥拼接,MD5加密,和sign进行比较。
问题:我通过jeepay官方提供sdk计算得到的sign和它返回的不一致,导致验签失败,花了很久时间,终于找到答案,因为我的下单请求数据中的body(商品描述)中带有“+”号,而body在加签时会被使用,支付网关加签时是用"+"号做运算,但是”+“号用过http协议传输后转义成了” “,一个空格,在验证的时候使用的时空格去加签的,所以导致验签失败。
最后经过测试,发现如果需要传输”+“号,将“+”符号转换为url可以识别ASCII 字符(十六进制格式):“%2B”。这样在传输就可以了。
2、项目刚部署回调成功,过一会儿不回调了
解决:jeepay默认使用的是activeMQ,当我换成rabbitMQ以后,问题解决,回调一直能成功!!!下面是切换rabbit过程
1、在将全部yml配置文件的activeMQ配置注释,放开rabbitMQ的配置注释:
2、yml配置文件最下面的activeMQ换成rabbitMQ,如下:
3、修改下面pom文件:
将activeMQ的provided放开,将rabiitMQ的compile放开:
切换成功!!!