| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- <?php
 
- namespace miniprogram;
 
- /**
 
-  * 对微信小程序用户加密数据的解密示例代码.
 
-  *
 
-  * @copyright Copyright (c) 1998-2014 Tencent Inc.
 
-  */
 
- use miniprogram\errorCode;
 
- //include_once "errorCode.php";
 
- 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::$IllegalEmpty;
 
- 		}
 
- 		if( $dataObj->watermark->appid != $this->appid )
 
- 		{
 
- 			return ErrorCode::$IllegalBuffer;
 
- 		}
 
- 		$data = $result;
 
- 		return ErrorCode::$OK;
 
- 	}
 
- }
 
 
  |