金蝶SDK使用JAVA实现appId与appSecret密钥认证原创
金蝶云社区-lajikd
lajikd
11人赞赏了该文章 2,518次浏览 未经作者许可,禁止转载编辑于2022年11月16日 12:00:39

先说一句,垃圾金蝶SDK。


密码认证请先看我上一篇文章,我的SDK版本是  7.9

我看最新的SDK移除了 一些方法,无所谓,只要能设置就行。



String = String =



这个是 serviceName 类似于path。

密钥认证需要准备的东西有:

IdentifyInfo identifyInfo = IdentifyInfo()identifyInfo.setdCID( k3CloudApiConfig.getAcctId() )identifyInfo.setAppId( k3CloudApiConfig.getAppId() )identifyInfo.setAppSecret( k3CloudApiConfig.getAppSecret() )identifyInfo.setServerUrl( k3CloudApiConfig.getServerUrl())identifyInfo.setUserName( k3CloudApiConfig.getUserName() )identifyInfo.setlCID( k3CloudApiConfig.getLcId() )

除了密码不用,其他都要。


直接步入正题。

先看postman,有个印象。

image.png


相信你这么聪明,一定能明白。


那么接下来看金蝶SDK,我需要说一点的是,金蝶认证的核心在于  设置一个  登录后的  sessionID,这样后续业务才可以调用,上面这个接口登录成功会返回,其次,我上篇文章直接使用 SDK去调用认证的方式,这个行不通,那么我们需要换一种方式。

1、编写类去继承调用的 K3CloudApi

SupperK3CloudApi K3CloudApi {

    (IdentifyInfo identify) {
        (identify)}

    (K3CloudCookieStore k3CloudCookieStore){
        .afterExecute(k3CloudCookieStore)}

}

2、随便使用一个 http的调用工具,比如 hutool,okhttp3


Boolean (){
    {
        Map<StringObject> params = HashMap<>()params.put(.getLcId())params.put(.getAcctId())params.put(.getAppId())params.put(.getAppSecret())params.put(.getUserName())String serverUrl = .getServerUrl()(! serverUrl.endsWith()){
            serverUrl += }
        String result = HttpUtil.(serverUrl + K3CloudApiConstants.params).= JSON.(resultValidateUser.)( .== || ..getLoginresulttype() == || ..getLoginresulttype() != || ..getKdsvcsessionid() == ){
            .= RuntimeException()}
        String kdsvcsessionid = ..getKdsvcsessionid()K3CloudCookieStore k3CloudCookieStore = K3CloudCookieStore()k3CloudCookieStore.setSID( kdsvcsessionid ).setK3CloudCookieStore( k3CloudCookieStore ).= } (Exception ex){
        .= .error(ex)}
}


这样业务调用就没问题了


md,我发现不需要认证也能调用,sb金蝶,尼玛








赞 11