java腾讯云通信生成userSig
1.引入腾讯云提供的jar包
这里使用maven方式导入jar包
<dependency>
<groupId>com.github.tencentyun</groupId>
<artifactId>tls-sig-api</artifactId>
<version>1.2</version>
</dependency>
不用maven的同学可以从maven官网上找到tls-sig-api.jar及其三个依赖包进行手动导入。
2.代码实现
public final static String TENCENT_SDKAPPID = "1xxxxxxxx89";//腾讯云appid
public final static String TENCENT_PRIVSTR = "-----BEGIN PRIVATE KEY-----";//腾讯云私钥
public String getUserSig(String memberId) {
tls_sigature.GenTLSSignatureResult result = tls_sigature.GenTLSSignatureEx(TENCENT_SDKAPPID ,memberId, TENCENT_PRIVSTR);
String urlSig = result.urlSig;
return urlSig;
}
本次使用的是生成默认有效时间userSig的方法,有效时间为180天,过期后需要再次生成
其中入参memberId是根据自己项目里的账号体系在腾讯云生成的对应的账号
3.遇到的问题
jar包冲突
使用maven方式导入项目时,会自动引入他的依赖包
bcpkix-jdk15on-1.59.jar
bcprov-jdk15on-1.59.jar
json-20180130.jar
这三个jar包在app开发中常用到的。尤其是bcpkix-jdk15on-1.59.jar,bcprov-jdk15on-1.59.jar常用于电子签章和电子签名功能,如果多次引入不同版本的jar包,调用方法后会出现异常,把对应的老版本移除即可。