最近微信推出了试用小程序,对于用户来说是一个福利,可以将小程序快速落地,对于产品价值以及用户引导有很大的增幅,但是不得不说微信文档还是义无反顾的各种坑,整理一下希望对同学有一定的帮助

废话不说,先把试用小程序的相关文档贴一下 https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Register_Mini_Programs/beta_mp/fastregister.html

流程相对比较简单

  • 先通过静默获取公众号openid的方式获取到用户open_id
  • 调用微信接口获取到授权链接
  • 点击链接进入h5进行授权,跟第三方绑定并创建小程序
  • 接收授权结果推送拿到授权码换取小程序的access_token
  • 设置头像、备注、指定代码包
  • 获取体验码,给用户体验

试用小程序流程介绍-LMLPHP

 静默获取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] => https://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"
}

拿到 authorizationCode之后,我们需要做的就是通过微信接口获取对应小程序的access_token,接口地址:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/authorization_info.html

而后续操作之前写过相关文档,感兴趣的话可以移步查看 https://www.cnblogs.com/hbyzs/p/7060521.html

 

本文章为原创,上述流程本人测试已通,创作不易,如需转载请注明文章出处。 

01-28 04:07