laravel微信公众号自定义分享获取签名

话不多话上代码!

public function getConfig(Request $request)
{
    //获取参数
    $url = $request->get('url');
    //公众号的appid、secret
    $appid = "自己的appid";
    $secret = "自己的secret";
    //缓存内是否存在accessToken。
    $accessToken = Cache::remember('accessToken11', 120, function () use ($appid, $secret) {
        //获取access_token的请求地址
        $accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
        //请求地址获取access_token
        $accessTokenJson = file_get_contents($accessTokenUrl);
        $accessTokenObj = json_decode($accessTokenJson);
        $accessToken = $accessTokenObj->access_token;
        return $accessToken;
    });

    //获取jsapi_ticket的请求地址
    $ticketUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$accessToken&type=jsapi";
    $jsapiTicketJson = file_get_contents($ticketUrl);
    $jsapiTicketObj = json_decode($jsapiTicketJson);
    $jsapiTicket = $jsapiTicketObj->ticket;

    //随机生成16位字符
    $noncestr = str_random(16);
    //时间戳
    $time = time();
    //拼接string1
    $jsapiTicketNew = "jsapi_ticket=$jsapiTicket&noncestr=$noncestr&timestamp=$time&url=$url";

// j s a p i T i c k e t N e w = " j s a p i t i c k e t = jsapiTicketNew = "jsapi_ticket= jsapiTicketNew="jsapiticket=jsapiTicket&noncestr=KaTeX parse error: Expected 'EOF', got '&' at position 9: noncestr&̲tamp=time&url=$url";

    //对string1作sha1加密
    $signature = sha1($jsapiTicketNew);
    //存入数据
    $data = [
        'appid' => $appid,
        'timestamp' => $time,
        'nonceStr' => $noncestr,
        'signature' => $signature,
        'jsapiTicket' => $jsapiTicket,
        'url' => $url,
        'jsApiList' => [
            'api' => '#'
        ]
    ];
    //返回
    return json_encode($data);
}


看的一个大佬的代码,里面执行有小错,稍作修改
原文地址:https://blog.csdn.net/weixin_41530218/article/details/80777036
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值