View Source WeChat.WebPage (wechat v0.16.0)
网页开发
API Docs
Summary
Types
JS API的临时票据类型
授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
授权范围
重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
Types
@type access_token() :: String.t()
@type card_config() :: %{cardId: WeChat.Card.card_id(), cardExt: card_ext()}
@type card_ext() :: String.t()
@type code() :: String.t()
@type js_api_ticket() :: ticket()
@type js_api_ticket_type() :: String.t()
JS API的临时票据类型
"jsapi"
- JS-SDK Config"wx_card"
- 微信卡券
@type js_sdk_config() :: %{ appId: WeChat.appid(), signature: signature(), timestamp: timestamp(), nonceStr: nonce_str() }
@type nonce_str() :: String.t()
@type redirect_uri() :: String.t()
授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
@type refresh_token() :: String.t()
@type scope() :: String.t()
授权范围
"snsapi_base"
- 静默授权"snsapi_userinfo"
- 用户的基本信息(无须关注)
@type signature() :: String.t()
@type state() :: String.t()
重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
@type ticket() :: String.t()
@type timestamp() :: non_neg_integer()
@type url() :: String.t()
@type wx_card_ticket() :: ticket()
Functions
@spec add_card_config(WeChat.client(), WeChat.Card.card_id(), outer_str :: String.t()) :: card_config()
生成微信卡券配置 - 添加卡券
API Docs
@spec add_card_config( WeChat.client(), WeChat.Card.card_id(), outer_str :: String.t(), WeChat.openid() ) :: map()
生成微信卡券配置 - 添加卡券(绑定openid
)
API Docs
auth(requester \\ Requester.OfficialAccount, openid, access_token)
View Source网页授权 - 检验授权凭证(access_token
)是否有效 -
官方文档
@spec code2access_token(WeChat.client(), code()) :: WeChat.response()
网页授权 - 通过code
换取access_token
官方文档:
@spec get_ticket(WeChat.client(), js_api_ticket_type()) :: WeChat.response()
获取api_ticket
-
官方文档
@spec js_sdk_config(WeChat.client(), url()) :: js_sdk_config()
生成 JS-SDK 配置 - 官方文档
返回 maps
包含: appId/signature/timestamp/nonceStr
oauth2_authorize_url(client, redirect_uri, scope \\ "snsapi_base", state \\ "")
View Source@spec oauth2_authorize_url(WeChat.client(), redirect_uri(), scope(), state()) :: url()
网页授权 - 请求code
官方文档:
关于网页授权回调域名的说明
- 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的 “
开发
-接口权限
-网页服务
-网页帐号
-网页授权获取用户基本信息
” 的配置选项中, 修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://
等协议头; - 授权回调域名配置规范为全域名,比如需要网页授权的域名为:
www.qq.com
,配置以后此域名下面的页面http://www.qq.com/music.html
、http://www.qq.com/login.html
都可以进行OAuth2.0
鉴权。但http://pay.qq.com
、http://music.qq.com
、http://qq.com
无法进行OAuth2.0
鉴权 - 如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可
@spec refresh_token(WeChat.client(), refresh_token()) :: WeChat.response()
网页授权 - 刷新access_token
由于access_token
拥有较短的有效期,当access_token
超时后,可以使用refresh_token
进行刷新,
refresh_token
有效期为30天,当refresh_token
失效之后,需要用户重新授权。
官方文档:
卡券签名 - 官方文档
@spec sign_card(wx_card_ticket(), WeChat.Card.card_id()) :: map()
See sign_card/1
@spec sign_card(wx_card_ticket(), WeChat.Card.card_id(), WeChat.openid()) :: map()
See sign_card/1
@spec sign_js_sdk(js_api_ticket(), url(), WeChat.appid()) :: js_sdk_config()
生成 JS-SDK 配置(by ticket) - 官方文档
返回 maps
包含: appId/signature/timestamp/nonceStr
@spec user_info(WeChat.openid(), access_token()) :: WeChat.response()
网页授权 - 拉取用户信息(需scope
为snsapi_userinfo
) -
官方文档
如果网页授权作用域为snsapi_userinfo
,则此时开发者可以通过access_token和openid拉取用户信息了.
@spec user_info(WeChat.requester(), WeChat.openid(), access_token()) :: WeChat.response()
@spec user_info(WeChat.openid(), access_token(), WeChat.User.lang()) :: WeChat.response()
See user_info/2
@spec user_info( WeChat.requester(), WeChat.openid(), access_token(), WeChat.User.lang() ) :: WeChat.response()
See user_info/2