wx.addCard能够正常显示卡卷,但是领取按钮显示 “签名错误”
签名算法如下:
public function getCard($card_id,$sessionId){ //获取openid $openid = $this->openId($sessionId); //获取ticket $res = $this->getApiTicket(); //生成签名 $now =time(); $timestamp = $now; $nonceStr = $this->createNonceStr(8); $arr = array($card_id,$res['ticket'],$nonceStr,$openid,$timestamp);//组装参数 asort($arr, SORT_STRING); $sortString = ""; foreach($arr as $temp){ $sortString = $sortString.$temp; } $signature = sha1($sortString); $card = array( 'timestamp' => $timestamp, 'signature' => $signature, 'cardId' => $card_id, 'ticket' => $res['ticket'], 'nonce_str' => $nonceStr ); return $card; } |
小程序js
wx.request({ url: url + '/api/app/getAppCard', data:{ session_id : sessionId, card_id: 'pwJno0xiCS3HfuSpQoJtTCtEXODU' }, success: function (res) { var card_info = res.data.cardArray console.log(res.data.cardArray) wx.addCard({ cardList: [ { cardId: card_info.cardId, cardExt: '{"code": "", "openid": "", "timestamp": "'+card_info.timestamp+'", "signature":"'+card_info.signature+'"}' } ], success: function (res) { console.log(res) // 卡券添加结果 }, fail: function (res) { console.log(res) }, complete: function(res) { console.log(res) } }) } }) |

请问解决了吗
"openid": "" openid没有传入
那是因为后端没有开启code自定义,又提供了code给前端传参数
同样的问题
楼主解决了吗?