위 챗 2 차 공유 오류 보고 invalid signature 문제 및 해결 방법

위 챗 공식 번 호 를 기반 으로 개발 한 h5 페이지(jssdk 인터페이스 사용)는 사용자 A 가 사용자 B 에 게 공유 하고 사용자 B 가 이 페이지 를 다시 공유 할 때 성공 적 으로 공유 할 수 없습니다.문 제 는 사용자 B 가 받 은 공유 링크 가 사용자 A 가 연 링크 와 다르다 는 것 입 니 다.
A 사용자 의 링크 는
http://test.com/test.html
B 사용자 가 받 은 연결
http://test.com/test.html&from=singlemessage
from=singlemessage 는 위 챗 클 라 이언 트 가 공유 소스 재 링크 후 자동 으로 추 가 된 태그 입 니 다.다시 공유 할 때 js 코드 에서 자동 으로 가 져 온 연결 을 encodeURIComponent 처리 하고 배경 에서 받 은 url 을 urldecode 처리 해 야 합 니 다.
js 와 phop 예제 코드 는 다음 과 같다.
ajax 주의,사용 하 는 post,get 으로 의 미 를 바 꾸 지 않 는 다 고 합 니 다(get 방식 본인 은 테스트 하지 않 았 습 니 다)
js 코드

function share(){
  var nowurl     = window.location.href;
  var nowurlo   = nowurl.split('&')[0];
  $.ajax({
    type     : "post",
    url     : "***********************", //    
    dataType   : "json",
    data     : { 'url': encodeURIComponent(nowurl) }, //      nowurl  encode;
    success   : function (data) {
      wx.config({
            debug    : false,        //    
            appId    : data.appId,      //   appid
            timestamp  : data.timestamp,    //   
            nonceStr   : data.noncestr,    //        
            signature  : data.signature,    //  
            jsApiList  : [
              'updateAppMessageShareData',
              'updateTimelineShareData',
              'onMenuShareAppMessage',
              'onMenuShareTimeline',
              'chooseWXPay',
              'showOptionMenu',
              "hideMenuItems",
              "showMenuItems",
              "onMenuShareTimeline",
              'onMenuShareAppMessage',
          ] //   ,     JS    
      });
      wx.ready(function () {  //                 
        wx.updateAppMessageShareData({ 
          title  : '', //     
          desc   : '', //     
          link   : nowurlo, //     (  js   )
          imgUrl  : '', //     
          success : function () {
          }
        });
        wx.updateTimelineShareData({ 
          title   : '', //     
          link   : nowurlo,     (  js   )
          imgUrl  : '', //     
          success  : function () {
          },
        });
      });
      
    }
  });
}
php 코드

 public function generateSignature(){
    $timestamp           = time();
    $jsapiTicket          = ;//    jsapi_ticket
    $noncestr           = md5(uniqid(microtime(true),true));//   noncestr
    $url              = urldecode(I('post.url'));
    $signature           = sha1('jsapi_ticket=' . $jsapiTicket . '&noncestr=' . $noncestr . '&timestamp=' . $timestamp . '&url=' . $url);
    $shareConfig['appId']     = '';//   appId
    $shareConfig['timestamp']   = $timestamp;
    $shareConfig['noncestr']    = $noncestr;
    $shareConfig['signature']   = $signature;
    $shareConfig['url']      = $url;
    echo json_encode($shareConfig);
  } 
총결산
위 에서 말 한 것 은 편집장 이 소개 한 위 챗 2 차 공유 오류 invalid signature 문제 와 해결 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기