日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

微信小程序授權(quán)accessToken配置引導(dǎo)

更新時(shí)間:

說(shuō)明

背景

完成AccessToken相關(guān)配置,才可以發(fā)送小程序訂閱通知。該接口需要實(shí)現(xiàn)下述功能:

1、獲取微信小程序的accessToken,入?yún)⒃O(shè)置了本次請(qǐng)求是否刷新token,請(qǐng)確保該token的可用性。

2、連通性測(cè)試,QA在配置后會(huì)進(jìn)行一次連通性測(cè)試,不會(huì)傳入wxAppId(微信小程序的AppId,詳見(jiàn)接口文檔),請(qǐng)返回正確即可(code為200、token為空即可)。

參數(shù)說(shuō)明

參數(shù)名稱

參數(shù)解釋

備注

URL地址

填寫客戶側(cè)獲取微信token的地址

接口開(kāi)發(fā)方提供該接口,需實(shí)現(xiàn)上述功能。

APP ID

驗(yàn)簽使用的參數(shù)

請(qǐng)和接口開(kāi)發(fā)方約定好APPID,在這里填寫即可

AccessKey

驗(yàn)簽使用的參數(shù)

請(qǐng)和接口開(kāi)發(fā)方約定好AccessKey,在這里填寫即可

SecretKey

驗(yàn)簽使用的參數(shù)

請(qǐng)和接口開(kāi)發(fā)方約定好SecretKey,在這里填寫即可

一、接口文檔

接口描述

查詢微信小程序AccessToken

URL

${第三方填的地址}?appId=aaa&accessKey=xxx&timestamp=yyy

請(qǐng)求方式

POST

請(qǐng)求類型

application/json

返回類型

*/*

參數(shù)名

數(shù)據(jù)類型

參數(shù)類型

是否必填

說(shuō)明

1.wxAppId

string

body

微信小程序appId

2.refresh

boolean

body

是否需要刷新token,默認(rèn)false

狀態(tài)碼

描述

說(shuō)明

200

OK

請(qǐng)求成功。

401

Unauthorized

請(qǐng)求未經(jīng)授權(quán)。

403

Forbidden

請(qǐng)求被拒絕。

404

Not Found

請(qǐng)求的資源不存在。

返回屬性名

類型

說(shuō)明

1.code

string

請(qǐng)求狀態(tài)碼,200或OK表示成功。

2.message

string

錯(cuò)誤信息

3.accessToken

string

微信小程序的accesToken

4.expireTime

DateTime

過(guò)期時(shí)間。格式

4.requestId

string

請(qǐng)求ID。

示例

請(qǐng)求參數(shù)

http://{獲取token的Url}?appId=aaa&accessKey=xxx&timestamp=yyy

返回值

{"code":"200","requestId":"string","message":"string","accessToken":"xxxx","expireTime":"2024-09-10 00:00:00"}

二、驗(yàn)簽說(shuō)明

QA會(huì)根據(jù)下面方式生成簽名,如果需要,請(qǐng)三方根據(jù)此方法驗(yàn)證簽名

QA在請(qǐng)求的接口路徑上會(huì)帶上 appId, accessKey, timestamp(時(shí)間戳參數(shù)),并且需要在header中加入簽名Authorization。

公共參數(shù)說(shuō)明

參數(shù)

說(shuō)明

位置

appId

開(kāi)放平臺(tái)的應(yīng)用id

請(qǐng)求URI中的參數(shù)部分

accessKey

開(kāi)放平臺(tái)的應(yīng)用的ak

請(qǐng)求URI中的參數(shù)部分

timestamp

當(dāng)前時(shí)間戳(毫秒)

請(qǐng)求URI中的參數(shù)部分

Authorization

生成的簽名

請(qǐng)求的header中

簽名生成規(guī)則:

  • 使用請(qǐng)求參數(shù)構(gòu)造規(guī)范化的請(qǐng)求字符串(Canonicalized Query String)

  • 按照參數(shù)名稱的字典順序?qū)φ?qǐng)求中所有的請(qǐng)求參數(shù)(包括文檔中描述的“公共請(qǐng)求參數(shù)”和給定了的請(qǐng)求接口的自定義參數(shù))進(jìn)行排序。 注:當(dāng)使用GET方法提交請(qǐng)求時(shí),這些參數(shù)就是請(qǐng)求URI中的參數(shù)部分(即URI中"?"之后由"&"連接的部分)

  • 名稱和值要使用UTF-8字符集進(jìn)行URL編碼。

代碼示例

其中簽名的生成邏輯如下 java代碼示例:

String appId="tttt";
String accessKey = "xxxx";
String accessSecret ="yyyy";
String timeStamp = "1708235644862";

SortedMap<String, String> map = new TreeMap<>();
map.put("appId", appId);
map.put("accessKey", accessKey);
map.put("accessSecret",accessSecret );
map.put("timestamp", timeStamp);
//如果是get請(qǐng)求,還有其他的query參數(shù),那么繼續(xù)加

String aa = getCanonicalQueryString(map);
System.out.println(aa);
String authorization = org.apache.commons.codec.digest.DigestUtils.md5Hex(aa);
System.out.println(authorization);
public static String getCanonicalQueryString(SortedMap<String, String> paramsMap) {
        StringBuilder queryString = new StringBuilder();
        boolean isFirstParameter = true;

        for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
            String paramName = entry.getKey();
            String value = entry.getValue();

            if (!isFirstParameter) {
                queryString.append("&");
            } else {
                isFirstParameter = false;
            }
            queryString.append(paramName).append("=").append(value);
        }
        return queryString.toString();
}

示例如下:

curl --location -g --request POST 'http://{配置的獲取token的Url}?appId=aaa&accessKey=xxx&timestamp=yyy' \
--header 'Authorization: demosign'

三、異常碼說(shuō)明

異常code

說(shuō)明

ES05910010001

APP不存在

請(qǐng)確認(rèn)在開(kāi)放平臺(tái)創(chuàng)建的APP是否存在

ES05910010002

簽名不正確

請(qǐng)確認(rèn)生成簽名的方式是否正確

ES05910010003

時(shí)間戳校驗(yàn)不通過(guò)

生成的時(shí)間戳需要在3分鐘內(nèi)調(diào)用,否則校驗(yàn)不通過(guò)

ES05910010004

應(yīng)用沒(méi)有當(dāng)前接口權(quán)限

應(yīng)用需要訂閱接口api才可以使用

ES05910010005

檢查appId, accessKey, timestamp 傳參是否正確

開(kāi)放平臺(tái)的接口,公共參數(shù)appId, accessKey, timestamp必須傳,且按照平臺(tái)的規(guī)范