- 根据 appid 登录,成功获取到 code 之后 跳转到 redirect_uri
let base_uri = "https://open.weixin.qq.com/connect/oauth2/authorize";
let redirect_uri = encodeURI("https://" + redirect_uri域名 + "/gotcode.html");
let get_code_uri = `${base_uri}?appid=${app_id}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_base&state=${自定义参数}#wechat_redirect`;
window.location.href = get_code_uri
需要在公众号设置 redirect_uri域名 (最多设置两个),如果设置的 redirect_uri域名 不包含上面发起的,则会报错
需要在公众号绑定的微信商户平台设置 jsapi 支付授权目录(最多可以设置5个),如果设置的 jsapi 支付目录不包含以上的 redirect_uri变量,则会报错
- 后端根据 code + appid + app_secret,获取用户 openid
$response = Http::retry(3, 5000)->get("https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code");
if (isset($response['openid']))
$openid = $response['openid'];
else
return ['status' => 5, 'msg' => '登录过期,请重试'];
- 后端根据 openid 和其它订单参数,向微信获取支付参数返回给前端
网友评论