问答

laravel如何使用自定义类?

作者:admin 2021-09-26 我要评论

我想在控制器中使用这个自定义类文件 自定义类文件和控制器的都在同一目录下 命名空间也一样 我在控制器中 use WXBizDataCrypt; 后实例化时报错了 Class 'WXBizD...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

我想在控制器中使用这个自定义类文件
自定义类文件和控制器的都在同一目录下 命名空间也一样
我在控制器中use WXBizDataCrypt;后实例化时报错了Class 'WXBizDataCrypt' not found
控制器中

$pc = new WXBizDataCrypt($appid, $sessionKey);

自定义类文件WXBizDataCrypt.php

<?php

namespace App\Http\Controllers\Api;

use ErrorCode;



class WXBizDataCrypt
{
    private $appid;
    private $sessionKey;

    /**
     * 构造函数
     * @param $sessionKey string 用户在小程序登录后获取的会话密钥
     * @param $appid string 小程序的appid
     */
    public function __construct( $appid, $sessionKey)
    {
        $this->sessionKey = $sessionKey;
        $this->appid = $appid;
    }


    /**
     * 检验数据的真实性,并且获取解密后的明文.
     * @param $encryptedData string 加密的用户数据
     * @param $iv string 与用户数据一同返回的初始向量
     * @param $data string 解密后的原文
     *
     * @return int 成功0,失败返回对应的错误码
     */
    public function decryptData( $encryptedData, $iv, &$data )
    {
        if (strlen($this->sessionKey) != 24) {
            return ErrorCode::$IllegalAesKey;
        }
        $aesKey=base64_decode($this->sessionKey);

        
        if (strlen($iv) != 24) {
            return ErrorCode::$IllegalIv;
        }
        $aesIV=base64_decode($iv);

        $aesCipher=base64_decode($encryptedData);

        $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);

        $dataObj=json_decode( $result );
        if( $dataObj  == NULL )
        {
            return ErrorCode::$IllegalBuffer;
        }
        if( $dataObj->watermark->appid != $this->appid )
        {
            return ErrorCode::$IllegalBuffer;
        }
        $data = $result;
        return ErrorCode::$OK;
    }

}
###
$pc?=?new?\App\Http\Controllers\Api\WXBizDataCrypt($appid,?$sessionKey);

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • laravel如何使用自定义类?

    laravel如何使用自定义类?

  • 使用nodejs开发前后台分离的项目的后台

    使用nodejs开发前后台分离的项目的后台

  • nuxt 部署如何控制浏览器缓存

    nuxt 部署如何控制浏览器缓存

  • js中对像里的数据如何通过"word"里的

    js中对像里的数据如何通过"word"里的

腾讯云代理商
海外云服务器