问题模块
教程反馈
/** * 生成mp_sig签名 * @param $url_path * @param $params * @param $session_key * @return string */public function makeMpSig($url_path, $params, $session_key){ ksort($params); $query_string = array(); foreach ($params as $key => $val ) { array_push($query_string, $key . '=' . $val); } $query_string = join('&', $query_string); $query_string .= "&org_loc=" . $url_path . "&method=POST&session_key=" . $session_key; $my_sign = hash_hmac("sha256", $query_string, $session_key); return $my_sign;}php写的签名方法,返回Array ( [errcode] => 90009 [errmsg] => mp_sig error hint: [aT13rA02423672] )
实际上用这个方法把官方文档上的参数放入去生成出来的结果跟官方上给出的结果是一样的,为什么真正去调用接口时会报错?难道文档说的方法也不对?
微信小程序开发问题解答
微信小程序开发者回答:
刚才有个同学给我参考了他的代码,问题找到了,原来参数access_token在签完名之后要清掉(
unset($data['access_token']);),不要存在Post的内容里,而是只放在url上?access_token=xxx这样
微信小程序开发者回答:
相关参数取值也要正确才对得上, 和文档上的对得上说明算法没问题,那就看相关参数的取值了,比如:$session_key,要求是当前用户最新的。 比如 $url_path 也要和请求的接口对得上,不能一个是sandbox一个是正式环境的url
你可以给一个实例看看?
本文网址:http://www.91bianli.com/weixinxiaochengxu/44816.html