微信第三方平台消息加密解密类库

简介

  • 微信官方提供的SDK并没有发布到 composer 上,每次使用配置起来很麻烦,那么有没有现成可以使用的在线加密解密类库呢,本文介绍 klib/wxtools 类库。
  • 这个类库只是一个原微信类库的封装库,不过给使用提供了便捷。

安装

  • composer require klib/wxtools 即可

使用

  • 以Larvael 框架举例,修改 routes/web.php
... 其他代码
# 在头部引用类库
use KLib\WxTools\Crypto\WXBizMsgCrypt;

# 添加测试路由
Route::get('/klib/test', function () {

    // 第三方发送消息给公众平台
    # 创建 WXBizMsgCrypt 类所需要的信息
    $encodingAesKey = "nz47o6NxDrpf4hXPoDzXUZMCYR4hhnUBB4dKR4RuJ4u";
    $token = "JWKFKKKEQBBDKFKS";
    $appId = "wxd3e6d25996c4bc5f";

    # 浏览器发送的消息
    $timeStamp = "1409304348";
    $nonce = "xxxxxx";

    # 待解密的消息
    $text = "1407743423";

    $pc = new WXBizMsgCrypt($token, $encodingAesKey, $appId);
    $encryptMsg = '';
    $errCode = $pc->encryptMsg($text, $timeStamp, $nonce, $encryptMsg);
    if ($errCode == 0) {
        print("加密后: " . $encryptMsg . "\n");
    } else {
        print($errCode . "\n");
    }

    $xml_tree = new \DOMDocument();
    $xml_tree->loadXML($encryptMsg);
    $array_e = $xml_tree->getElementsByTagName('Encrypt');
    $array_s = $xml_tree->getElementsByTagName('MsgSignature');
    $encrypt = $array_e->item(0)->nodeValue;
    $msg_sign = $array_s->item(0)->nodeValue;

    $format = "";
    $from_xml = sprintf($format, $encrypt);


    // 第三方收到公众号平台发送的消息
    $msg = '';
    $errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $from_xml, $msg);
    if ($errCode == 0) {
        print("解密后: " . $msg . "\n");
    } else {
        print("出错 :".$errCode . "\n");
    }

});
  • 浏览器访问: http://测试域名/klib/test 后查看源码,加密解密成功,之后自己配置自己的信息即可。
    image.png

你可能感兴趣的:(微信第三方平台消息加密解密类库)