試用小程式流程介紹

最近微信推出了試用小程式,對於用戶來說是一個福利,可以將小程式快速落地,對於產品價值以及用戶引導有很大的增幅,但是不得不說微信文檔還是義無反顧的各種坑,整理一下希望對同學有一定的幫助

廢話不說,先把試用小程式的相關文檔貼一下 //developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Register_Mini_Programs/beta_mp/fastregister.html

流程相對比較簡單

  • 先通過靜默獲取公眾號openid的方式獲取到用戶open_id
  • 調用微信介面獲取到授權鏈接
  • 點擊鏈接進入h5進行授權,跟第三方綁定並創建小程式
  • 接收授權結果推送拿到授權碼換取小程式的access_token
  • 設置頭像、備註、指定程式碼包
  • 獲取體驗碼,給用戶體驗

 靜默獲取openid的話做過微信掃碼登錄的都知道,就是微信重定向,獲取code,code換取open_id,這裡就不做介紹了

調用微信介面獲取到授權鏈接需要的參數是第三方access_token、用戶的open_id以及小程式名稱,微信會返回授權鏈接 authorize_url,微信環境下h5直接訪問就可以走通授權流程

返回的數據結構貼一下

Array
(
    [errcode] => 0
    [errmsg] => ok
    [unique_id] => 4PClAD0-PUyTrihS_s1AXITaoqLZKjokW2edPQsOomQ8a5q-QemqSDoI5ltA4RCx
    [authorize_url] => //mp.weixin.qq.com/wxawap/fastregistertpbeta?action=create&create_token=4PClAD0-PUyTrihS_s1AXITDWTaoqLZKjokW2edPQsOomQ8a5q-QemqSDoI5ltA4RCx#wechat_redirect
)

用戶授權成功之後,微信會給第三方回調地址推送授權結果,重點來了,其實微信對於當前授權行為推送了兩條消息,一個是授權結果,一個是授權成功事件

授權成功事件的話包含的內容就是小程式app_id以及對應的unique_id,用於平台自己的用戶體系打通,推送數據解密之後數據結構如下

{     
       "AppId":"wxefefe34fefe4",
       "CreateTime":"1611736749",
       "InfoType":"notify_third_fastregisterbetaapp",
       "appid":"wxef938c07f4952030",
       "status":"0",
       "msg":"OK",
       "info":{
                  "unique_id":"4PClAD0-PUyTrihS_s1AXITaoqLZKjokW2edPQsOomQ8a5q-QemqSDoI5ltA4RCx",
                  "name":"測試試用"
        }
}

授權結果就比較關鍵了,包含了授權碼,而這個授權碼我們可以去微信替換對應小程式的access_token,有了這個token我們才能對小程式進行程式碼指定以及獲取體驗二維碼,推送數據解密之後的數據結構如下

{ 
     "AppId":"wxfewfew3534fd",
     "CreateTime":"1611736749",
     "InfoType":"authorized",
     "AuthorizerAppid":"wxef938c07f4952030",
     "AuthorizationCode":"queryauthcode@@@dz7d8DohhP7OmM81CAl_w3jSY-XsC7vQN0MPlJvzy5B02TdQoh4DwwEFnpN2BcZk_NSmrpD1fAgvhdVOm968Yg",
     "AuthorizationCodeExpiredTime":"1611740349",     
 "PreAuthCode":"preauthcode@@@wn4D5o6pkTjXSS0MBbaOF1AZVAqskDOetvaLo sAiDrLN7lmmupdf-a3pFxIACbGnMwYIBH0IdiPPL4AbnuEjdA"
}

 

而後續操作之前寫過相關文檔,感興趣的話可以移步查看 //www.cnblogs.com/hbyzs/p/7060521.html

 

本文章為原創,上述流程本人測試已通,創作不易,如需轉載請註明文章出處。