题记: 因为原来没有做过云闪付支付开发 而这一次开发新项目整合云闪付支付老是出现授权用户与登录用户不匹配,原来做云闪付支付的老员工也离职 所以只能自己找解决办法
一开始以为它和支付宝或者微信一样UserId只有a-zA-Z1-9这样的字符 检查日志看报文的是否发现它的UserId还有 / + 这两个特殊符号当时也没有特别在意这个特殊符号 直到我用了同事的云闪付支付发现他的是可以进行支付 而我的是不能的
刚开始的解决办法是把这些特殊符号转换成 url编码格式谁知道还是不行 没办法只能再检查日志看报文
最后发现是base64的编码问题 它会把+变成空格
编码前: BHG/SzzF1IdOv5oPEPgbp+C6IgciOEYWHI9aOfNGQYJl3OIHPLGM
编码后: BHG/SzzF1IdOv5oPEPgbp C6IgciOEYWHI9aOfNGQYJl3OIHPLGM
解决方案:
在传入编码过后再进行一次 替换空格操作 就可以了
appUserId = appUserId.replace(" ", "+"); //替换空格
url编码字符转换: https://www.w3school.com.cn/tags/html_ref_urlencode.html