全部
全部

【java】如何更新5.1.0开发包


先判断是哪个版本的开发包:

先看sdk用的是源码还是jar包,jar包看分支1,如果用的源码但源码里不包含AcpService.java也看分支1;其他看分支2。(分支2的发布时间大概是2015年的10月-2016年3月各产品陆续更新的,分支间可能有迷一样的过度分支,请自行根据实际情况看。)


分支1:

1. sdk原来用jar包的删除jar包,原来用源码的删除源码。把新开发包的sdk源码拷贝进src。(见图一)

2. lib库更新(见图一):

1) bcprov-jdk16-1.45更新为bcprov-jdk15on-1.54.jar(新开发包里有这个jar,如果自己工程必须用不是这个版本的bc的jar,请自行修改源码使兼容,修改时部分用不到的国密算法的代码可以先注释掉)。

java.png(图一)

3. 改配置文件。(见图二)

1) acp_sdk.properties按新开发包的acp_sdk.properties添加配置。acpsdk.middleCert.path和acpsdk.rootCert.path是新加的配置,代替原来的sdk.validateCert.dir,非常重要请不要遗漏;其他自行比对添加。

3.png(图二)

4. 配置文件中acpsdk.middleCert.path和acpsdk.rootCert.path配置的文件在开发包assets/测试环境证书(或者生产环境证书)文件夹下取,复制到配置的路径,如果文件名和配置的不一样时注意修改配置的文件名。(见图三)

4.png(图三)

5. 替换调用sdk的方法,方法不知道如何调用的话可以看新开发包的demo,以下列出了一部分需要替换的方法(见图四):

(大部分方法不替换也能兼容,但建议替换一下新的。)

DemoBase.deCodeFileContent改为AcpService.deCodeFileContent,改sdk后原方法会报错建议删除。

DemoBase.getCustomer改为AcpService.getCustomerInfo,改sdk后原方法会报错建议删除。

DemoBase.signData(或者SDKUtil.sign)改为AcpService.sign。

DemoBase.submitUrl中的HttpClient相关方法+SDKUtil.convertResultStringToMap改为AcpService.post。←看新demo怎么写的理解一下。

SDKUtil.validate改为AcpService.validate。

DemoBase.createHtml改为AcpService.createAutoFormHtml。

java6.png(图四)

6. version改为5.1.0,但此处建议version和signMethod都改为读配置文件,方便以后再更新sdk版本时可减少改动。(见图五)

java7.png(图五)

7. 其他细节如果有问题,请自己根据自己使用的产品的demo修改,多数对外的sdk方法都在AcpService里。

8. 5.1.0对发backTransReq.do、cardTransReq.do的资金类交易,就算失败了也会发后台通知,请注意后台通知相关的代码修改一下逻辑。



分支2:

1. 删除原来的sdk源码,拷贝新的。

2. lib库更新:

1) bcprov-jdk16-1.45更新为bcprov-jdk15on-1.54.jar(新开发包里有这个jar,如果自己工程必须用不是这个版本的bc的jar,请自行修改源码使兼容,修改时部分用不到的国密算法的代码可以先注释掉)。

3. 改配置文件。(见图六)

1) acp_sdk.properties按新开发包的acp_sdk.properties添加配置。acpsdk.middleCert.path和acpsdk.rootCert.path是新加的配置,代替原来的sdk.validateCert.dir,非常重要请不要遗漏;其他自行比对添加。

3.png(图六)

4. 配置文件中acpsdk.middleCert.path和acpsdk.rootCert.path配置的文件在开发包assets/测试环境证书(或者生产环境证书)文件夹下取,复制到配置的路径,如果文件名和配置的不一样时注意修改配置的文件名。(见图七)

4.png

(图七)

5. 使用多证书方式签名的,注意signByCertInfo方法的参数顺序可能改动过。

6. version改为5.1.0,但此处建议version和signMethod都改为读配置文件,方便以后再更新sdk版本时可减少改动。(见图八)

java7.png(图八)

7. 其他细节如果有问题,请自己根据自己使用的产品的demo修改,多数对外的sdk方法都在AcpService里。

8. 5.1.0对发backTransReq.do、cardTransReq.do的资金类交易,就算失败了也会发后台通知,请注意后台通知相关的代码修改一下逻辑。


其他注意点:

1. bc的jar有升级,可能存在一部分1.45支持的类在1.54中不支持了,比如http://stackoverflow.com/questions/14919048/bouncy-castle-pemreader-pemparser,我司sdk并没有用到这些类,但贵司项目其他地方可能会用到,用到的话请自行去搜索引擎搜索如何修改。

2. token产品5.0.0的accNo固定返回明文的卡号后4位,5.1.0中改为了密文的卡号后4位,解密代码请参考前台通知里对accNo的处理。

3. mpos产品5.0.0时有效期为无视配置、加密后填写入customerInfo的,5.1.0改为了和其他产品一样如果不加密就明文放customerInfo,如果加密就放encryptedInfo中加密后填入customerInfo,具体请看mpos开发包里如何填写customerInfo的代码;ICCardData不用再做转16进制,直接把二进制数据做base64就可以。

4. 所有的后台类接口的后台通知增加了失败通知,请注意对应修改。前台类交易的后台通知仍然只有成功才会发。

5. 【UPCARD体系加密的时候请勿升级5.1.0,可以升级sdk,但代码version还是填5.0.0,继续用旧的配置文件。】

咨询服务