来自 电脑系统 2019-10-10 00:31 的文章
当前位置: 金沙澳门官网网址 > 电脑系统 > 正文

金沙澳门官网网址完成楼盘微信小程序后台,g

近期在用thinkphp框架写微信小程序的服务端,恐怕真的是天蝎座的案由,从官方下载了四个php的微信解密demo,明明能组成成一个类也非常少代码的,非要分多少个类来写,考虑到thinkphp 5.0的框架对于扩充的类引用路劲望着太蛋疼,所以就整合成了二个类,方便调用,有亟待的仇敌能够download。

近日有无数完美的php框架,举个例子thinkphp,ci,yii等等,都有众多优势;

金沙澳门官网网址 1

在还未有那么些框架出来前,就早就由此写函数集合的主意,做了好些个代码编制程序;

百度盘下载地址:

之所以,未来要么习贯用自个儿原先的代码库;

<?php/** * 对微信小程序用户加密数据的解密示例代码. * * @copyright Copyright  1998-2014 Tencent Inc. */class WXBizDataCrypt{ private $appid; private $sessionKey; private $blockSize = 16; private $OKs = 0; private $IllegalAesKey = -41001; private $IllegalIv = -41002; private $IllegalBuffer = -41003; private $DecodeBase64Error = -41004; /** * 检验数据的真实性,并且获取解密后的明文. * @param $encryptedData string 加密的用户数据 * @param $iv string 与用户数据一同返回的初始向量 * @param $data string 解密后的原文 * * @return int 成功0,失败返回对应的错误码 */ public function decryptData($appid,$sessionKey,$encryptedData, $iv, &$data ) { $this->sessionKey = $sessionKey; $this->appid = $appid; if (strlen($this->sessionKey) != 24) { return $this->IllegalAesKey; } $aesKey=base64_decode($this->sessionKey); if (strlen != 24) { return $this->IllegalIv; } $aesIV=base64_decode; $aesCipher=base64_decode($encryptedData); $result = $this->decrypt($aesKey,$aesCipher,$aesIV); if ($result[0] != 0) { return $result[0]; } $dataObj=json_decode( $result[1] ); if( $dataObj == NULL ) { return $this->IllegalBuffer; } if( $dataObj->watermark->appid != $this->appid ) { return $this->IllegalBuffer; } $data = $result[1]; return $this->OKs; } /** * 对密文进行解密 * @param string $aesCipher 需要解密的密文 * @param string $aesIV 解密的初始向量 * @return string 解密得到的明文 */ private function decrypt($key, $aesCipher, $aesIV ) { try { $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); mcrypt_generic_init($module, $key, $aesIV); //解密 $decrypted = mdecrypt_generic($module, $aesCipher); mcrypt_generic_deinit; mcrypt_module_close; } catch (Exception $e) { return array($this->IllegalBuffer, null); } try { //去除补位字符 $result = $this->decode($decrypted); } catch (Exception $e) { //print $e; return array($this->IllegalBuffer, null); } return array(0, $result); } /** * 对需要加密的明文进行填充补位 * @param $text 需要进行填充补位操作的明文 * @return 补齐明文字符串 */ private function encode { $block_size = $this->blockSize; $text_length = strlen; //计算需要填充的位数 $amount_to_pad = $this->blockSize - ( $text_length % $this->blockSize ); if ( $amount_to_pad == 0 ) { $amount_to_pad = $this->blockSize; } //获得补位所用的字符 $pad_chr = chr( $amount_to_pad ); $tmp = ""; for ( $index = 0; $index < $amount_to_pad; $index++ ) { $tmp .= $pad_chr; } return $text . $tmp; } /** * 对解密后的明文进行补位删除 * @param decrypted 解密后的明文 * @return 删除填充补位后的明文 */ private function decode { $pad = ord(substr($text, -1)); if ($pad < 1 || $pad > 32) { $pad = 0; } return substr($text, 0, (strlen - $pad)); }}

于是,就想把这一个代码整合成二个 相符赶快支付web项指标框架;

有须求的要好下,ps:对微信登陆授权流程有吸引的能够留言咨询。

框架优势: 对常用代码的访问,举例 把过多 前段效果 已经做成 工具集,四个函数 就会出口到前边贰个页面;

本文由金沙澳门官网网址发布于电脑系统,转载请注明出处:金沙澳门官网网址完成楼盘微信小程序后台,g

关键词: