微信服务器和开发者服务器进行绑定

普通版本
<?php

/*
 * 第一步:填写服务器url
 * 第二步:微信服务器发送一个get请求到填写的url 携带四个参数 signature timestamp nonce echostr
 * 第三步:将token、timestamp、nonce三个参数进行字典序排序
 * 第四部: 将三个参数字符串拼接成一个字符串进行sha1加密
 * 第五步:开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
 * 第六步:确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败
 * */

define("WEIXINTOKEN",'weixin1809B');

$wechatobj = new WechatApiTest();
$wechatobj->valid();

Class WechatApiTest
{
    public function valid()
    {
        $echostr  =  $_GET['echostr'];
        if($this->CheckSignature()){
            echo $echostr;exit;
        }
    }
    private function CheckSignature()
    {
        $signature  =  $_GET['signature'];
        $timestamp =  $_GET['timestamp'];
        $nonce  =  $_GET['nonce'];

        $token = WEIXINTOKEN;

        //将三个参数写入数组
        $arr = array($token,$timestamp,$nonce);
        //字典排序
        sort($arr,SORT_STRING);
        //拼接参数
        $str = implode($arr);
        //sha1 加密
        $sign = sha1($str);
        if($sign == $signature){
            return true;
        }else{
            return false;
        }


    }
}

laravel框架版本
<?php

namespace App\Http\Controllers\Wechat;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\Wechat;

class WechatController extends Controller
{
    /*
     * @content 微信绑定服务器校验
     * @params
     * */

    public function check(Request $request)
    {

        if (!empty($request->echostr)) {
            if ($this->CheckSignature()) {
                echo $request->echostr;
                exit;
            }
        } else {
            //执行推送消息的方法

            $this->responseMsg();
        }
    }
    /*
     * @content 校验微信签名
     * */
    private function CheckSignature()
    {

        $signature = $_GET['signature'];
        $timestamp = $_GET['timestamp'];
        $nonce     = $_GET['nonce'];
        $token     = env("WEIXINTOKEN");
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值