记录一次对接XX支付SDK过程中报错问题
我们支付平台以前我不做对接上游的,偶然间替别人做“对接了XX支付的相关接口的工作“。在工作过程中发现SDK和对外提供服务过程中很容易出问题。在此做个记录,为了以后相关工作中作为自己以后工作的警醒:
(1)demo中的代码跟接口文档严重不相符,不提供rest接口只提供sdk接入方式.
(2)SDK编译直接用了java8编译,没有考虑市场中依旧有java7以及7以下版本导致字节码不能兼容低版本jdk(后来沟通后给了一个1.7版本的sdk)。主要错误信息如下:
```java
Unsupported major.minor version 52.0
(3)jdk需要一个本地json文件作为配置文件,但是sdk中相关路径写死了(Demo中直接写在了类所在的包中),导致json文件放入其他地方sdk导入报错,里面的jackson解析也报错,后来发现导入源码所在包也不行。报错信息如下:
```java
Exception in thread "main" com.yeepay.g3.sdk.yop.YopServiceException: Errors occurred when loading SDK Config. (Status Code: 0; Error Code: null; Request ID: null)
at com.yeepay.g3.sdk.yop.config.support.SDKConfigUtils.loadConfig(SDKConfigUtils.java:30)
at com.yeepay.g3.sdk.yop.config.provider.DefaultFileAppSdkConfigProvider.loadCustomSdkConfig(DefaultFileAppSdkConfigProvider.java:54)
at com.yeepay.g3.sdk.yop.config.provider.BaseFixedAppSdkConfigProvider.init(BaseFixedAppSdkConfigProvider.java:65)
at com.yeepay.g3.sdk.yop.config.provider.BaseFixedAppSdkConfigProvider.getConfig(BaseFixedAppSdkConfigProvider.java:38)
at com.yeepay.g3.sdk.yop.client.YopRequest.<init>(YopRequest.java:67)
at com.qudou.app.framework.util.yibao.YeepayService.requestYOP(YeepayService.java:201)
at com.qudou.app.framework.util.yibao.YeepayService.getAgreeInfoQuery(YeepayService.java:272)
at com.qudou.app.controller.EntryController.main(EntryController.java:140)
Caused by: com.yeepay.shade.com.fasterxml.jackson.core.JsonParseException: Unexpected character ('`' (code 96)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: java.io.BufferedInputStream@6bb7c984; line: 1, column: 2]
at com.yeepay.shade.com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1586)
at com.yeepay.shade.com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:521)
at com.yeepay.shade.com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:450)
at com.yeepay.shade.com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2631)
at com.yeepay.shade.com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:854)
at com.yeepay.shade.com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:748)
at com.yeepay.shade.com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3847)
at com.yeepay.shade.com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3792)
at com.yeepay.shade.com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2867)
at com.yeepay.g3.sdk.yop.utils.JsonUtils.loadFrom(JsonUtils.java:77)
at com.yeepay.g3.sdk.yop.config.support.SDKConfigUtils.loadConfig(SDKConfigUtils.java:28)
... 7 more
```
对接工程非常痛苦,在此不是为了找问题而是作为工作经理做个记录,体验了一下明白了原来看着很简单的问题,由于某些方面的问题回导致非常困难!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!