public function sign($url, $corp_id, $type, $cardId)
{
$data['jsapi_ticket'] = $this->getJsApiTicket($type);
$data['noncestr'] = self::createNonceStr();
$data['timestamp'] = time();
$data['url'] = $url;
$data['card_id'] = $cardId;
$str = self::formatQueryParaMap($data);
$sign = sha1($str);
// unset($data['jsapi_ticket']);
// unset($data['url']);
$data['signature'] = $sign;
$data['appId'] = $corp_id;
return $data;
}
上面是在生成签名的代码 在领券卡券的时候,会传入card_id
但是在调用扫码的时候,并不会传入card_id,于是后台在为了不重复请求微信服务器的情况下,把获取的ticket保存起来
于是就造成了第一次领券可以,但是扫码不可以,或者扫码可以,但是领券不成功
最后是把两个ticket分别保存起来。
最近在调用微信token的时候,老是会报错
invalid credential, access_token is invalid or not latest hint: [6AgOhA0834
无效凭据,访问令牌无效或不是最新提示:[6agoha0834z
其他接口有重新生成过access_token,导致这边的access_token失效。
最后是统一了调用token的接口,这样就不会再报错冲突了。
1,之前因为粗心,没有详细阅读微信开发文档,
a,在获取微信扫一扫的ticket的时候,传的url type = jsapi
b,在获取卡券领取的时候,传的url type = wx_card
于是造成了经常性的签名错误,尴尬了。以后得详详细阅读开发文档