网页抓取解密(丹溪运动小程序获取的第一种方法解密参考参考示例 )
优采云 发布时间: 2022-03-11 04:19网页抓取解密(丹溪运动小程序获取的第一种方法解密参考参考示例
)
1.申请注册微信开放平台
2.将公众号或小程序绑定到微信开放平台
3.微信公众号,使用微信网页授权获取unionid
4.如果你是小程序,获取unionid有几种方法
小程序获得的第一个方法被解密。举例请参考丹溪体育小程序的处理方法
注意:unionid是同一用户在微信平台下使用不同产品生成的id,用于区分不同产品的用户。
解密数据(appid sessionKey encryptedData iv )
/**
* 检验数据的真实性,并且获取解密后的明文.
* @param $encryptedData string 加密的用户数据
* @param $iv string 与用户数据一同返回的初始向量
* @param $data string 解密后的原文
*
* @return int 成功0,失败返回对应的错误码
*/
public function xiaoDecryptData( Request $request )
{
$data = $request->all();
$sessionKey = $data['sessionKey'];
$encryptedData = $data['encryptedData'];
$appid = $data['appid'];
$iv = $data['iv'];
$IllegalAesKey = -41001;
$IllegalIv = -41002;
$IllegalBuffer = -41003;
$DecodeBase64Error = -41004;
$OK = 0;
if (strlen($sessionKey) != 24) {
return ['code' => 1002, 'data' => ['message' => $IllegalAesKey]];
}
$aesKey=base64_decode($sessionKey);
if (strlen($iv) != 24) {
return ['code' => 1002, 'data' => ['message' => $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 ['code' => 1002, 'data' => ['message' => $IllegalBuffer]];
}
if( $dataObj->watermark->appid != $appid )
{
return ['code' => 1002, 'data' => ['message' => $IllegalBuffer]];
}
return ['code' => 1000, 'data' => $dataObj];
}