微信网页开发jssdk计算签名踩坑记录
使用微信开发微信网页时,需要用到jssdk, 计算签名时需要用到完整的url地址,使用Laravel 的 Request fullUrl 方法获取的 url地址会将url参数排序, 导致签名计算和微信计算的不一致
$sdk_config = $officialAccount->getUtils()->buildJsSdkConfig($request->fullUrl(), ['onMenuShareAppMessage', 'onMenuShareTimeline', 'hideMenuItems', 'openLocation']);
在微信jssdk计算签名时不能直接用 $request->fullUrl()
获取url
在 normalizeQueryString 里面会将参数排序
public static function normalizeQueryString(?string $qs): string
{
if ('' === ($qs ?? '')) {
return '';
}
$qs = HeaderUtils::parseQuery($qs);
ksort($qs);
return http_build_query($qs, '', '&', \PHP_QUERY_RFC3986);
}
推荐文章: