小程序
小游戏
企业微信
微信支付
扫描小程序码分享
昨天发了贴,但是没看到加密的方案。我把我的贴一下,这几个函数都是官方的:
但是我无法验证通过,提示token不对。我核对了token是没错的
验证URL的部分,取信息就不贴了。
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
public
function
VerifyURL(
$sMsgSignature
,
$sTimeStamp
$sNonce
$sEchoStr
, &
$sReplyEchoStr
)
{
if
(
strlen
$this
->m_sEncodingAesKey) != 43) {
return
JOrigin_Wechat_Model_ErrorCode::
$IllegalAesKey
;
}
$pc
=Mage::getModel(
'jorigin_wechat/prpcrypt'
);
->setKey(
->m_sEncodingAesKey);
//verify msg_signature
$array
=
->getSHA1(
->m_sToken,
$ret
[0];
!= 0) {
$signature
[1];
!=
) {
$ValidateSignatureError
$result
->decrypt(
->m_sCorpid);
[0] != 0) {
$OK
/**
* 用SHA1算法生成安全签名
* @param string $token 票据
* @param string $timestamp 时间戳
* @param string $nonce 随机字符串
* @param string $encrypt 密文消息
*/
getSHA1(
$token
$timestamp
$nonce
$encrypt_msg
//排序
try
array
sort(
, SORT_STRING);
$str
= implode(
(JOrigin_Wechat_Model_ErrorCode::
, sha1(
));
catch
(Exception
$e
print
.
"\n"
$ComputeSignatureError
, null);
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
public
function
VerifyURL(
$sMsgSignature
,
$sTimeStamp
,
$sNonce
,
$sEchoStr
, &
$sReplyEchoStr
)
{
if
(
strlen
(
$this
->m_sEncodingAesKey) != 43) {
return
JOrigin_Wechat_Model_ErrorCode::
$IllegalAesKey
;
}
$pc
=Mage::getModel(
'jorigin_wechat/prpcrypt'
);
$pc
->setKey(
$this
->m_sEncodingAesKey);
//verify msg_signature
$array
=
$this
->getSHA1(
$this
->m_sToken,
$sTimeStamp
,
$sNonce
,
$sEchoStr
);
$ret
=
$array
[0];
if
(
$ret
!= 0) {
return
$ret
;
}
$signature
=
$array
[1];
if
(
$signature
!=
$sMsgSignature
) {
return
JOrigin_Wechat_Model_ErrorCode::
$ValidateSignatureError
;
}
$result
=
$pc
->decrypt(
$sEchoStr
,
$this
->m_sCorpid);
if
(
$result
[0] != 0) {
return
$result
[0];
}
$sReplyEchoStr
=
$result
[1];
return
JOrigin_Wechat_Model_ErrorCode::
$OK
;
}
/**
* 用SHA1算法生成安全签名
* @param string $token 票据
* @param string $timestamp 时间戳
* @param string $nonce 随机字符串
* @param string $encrypt 密文消息
*/
public
function
getSHA1(
$token
,
$timestamp
,
$nonce
,
$encrypt_msg
)
{
//排序
try
{
$array
=
array
(
$encrypt_msg
,
$token
,
$timestamp
,
$nonce
);
sort(
$array
, SORT_STRING);
$str
= implode(
$array
);
return
array
(JOrigin_Wechat_Model_ErrorCode::
$OK
, sha1(
$str
));
}
catch
(Exception
$e
) {
print
$e
.
"\n"
;
return
array
(JOrigin_Wechat_Model_ErrorCode::
$ComputeSignatureError
, null);
}
}