1. 程式人生 > >中國移動一鍵免密登入 103101簽名錯誤

中國移動一鍵免密登入 103101簽名錯誤

呼叫中國移動統一認證SDK返回103101 簽名錯誤的原因是因為在統一認證的請求引數中的sign欄位出現錯誤導致的,這個錯誤主要出現在開發者呼叫統一認證服務端api獲取手機號時或者老版本的Android客戶端sdk也有可能出現這個錯誤。

1.生成sign引數的欄位與json中對應的引數不一致

如下是獲取使用者資訊介面的引數格式

{
"appid" : "3000******76",
"msgid" : "335e06a28f064b999d6a25e403991e4c",
"sign" : "213EF8D0CC71548945A83166575DFA68",
"strictcheck" : "0",
"systemtime" : "20180129112955435",
"token" : "STsid0000001517196594066OHmZvPMBwn2MkFxwvWkV12JixwuZuyDU",
"version" : "2.0"
}

根據開發文件的描述,sign的生成規則是將 appid、version、msgid、systemtime 、strictcheck、token、appkey等字串拼接,然後對拼接好的字串進行MD5加密生成長度為32位的大寫的字串。一般在開發過程中由於開發者的疏忽有可能出現的情況是:

a.進行拼接的systemtime等引數與json中的systemtime的值不一致

b.appkey複製時多複製了空格

c.拼接的字串順序與文件要求的appid、version、msgid、systemtime 、strictcheck、token、appkey的順序不一致

d.新註冊的應用在配置能力時多了一個appSecret的選項,如圖:

如果開發者選擇了APPSecret,那麼生成sign時使用的appkey就需要替換成這裡的APPSecret。