Wechat secondary sharing error, invalid signature

The h5 page based on WeChat public number (using jssdk interface) is shared by user A to user B. Users can not share this page when they share the page again. The problem is that the sharing link received by user B is different from the one opened by user a
A user's link is


B connection received by user


from=singlemessage is the tag automatically added by wechat client to distinguish sharing source and link again,
When sharing again, we need to encode the automatically obtained connection in js code, and then process the url received in the background.

The sample code of js and php is as follows:
Pay attention to ajax, use post, use get. It's said that there is no escape (I didn't test the get method)

js code

function share(){
    var nowurl         = window.location.href;
    var nowurlo     = nowurl.split('&')[0];
        type         : "post",
        url          : "***********************", //Back-end interface
        dataType     : "json",
        data         : { 'url': encodeURIComponent(nowurl) }, // Note that encode the nowurl here;
        success      : function (data) {
                        debug        : false,                //Debug mode
                        appId        : data.appId,           //Public address appid
                        timestamp    : data.timestamp,       //time stamp
                        nonceStr     : data.noncestr,        //Generate a random string of signatures
                        signature    : data.signature,       //autograph
                        jsApiList    : [
                    ] // Required, list of JS interfaces to be used
            wx.ready(function () {   //It needs to be called before the user may click the share button
                    title    : '', // Share title
                    desc     : '', // Sharing description
                    link     : nowurlo, // Auto get (in the above js code)
                    imgUrl   : '', // Share Icon
                    success  : function () {
                    title     : '', // Share title
                    link      : nowurlo, Auto get (above js Code)
                    imgUrl    : '', // Share Icon
                    success   : function () {

php code

 public function generateSignature(){
        $timestamp                     = time();
        $jsapiTicket                   = ;//Get jsapi "ticket here
        $noncestr                      = md5(uniqid(microtime(true),true));//My noncestr
        $url                           = urldecode(I('post.url'));
        $signature                     = sha1('jsapi_ticket=' . $jsapiTicket . '&noncestr=' . $noncestr . '&timestamp=' . $timestamp . '&url=' . $url);
        $shareConfig['appId']          = '';//appId here
        $shareConfig['timestamp']      = $timestamp;
        $shareConfig['noncestr']       = $noncestr;
        $shareConfig['signature']      = $signature;
        $shareConfig['url']            = $url;
        echo json_encode($shareConfig);


Posted on Wed, 04 Dec 2019 04:51:51 -0500 by ferhanz