php做企业微信开发,如何用php开启企业微信开发的回调模式

猜想:

懵逼

实践:

微信公众号开发的手册中甚至给出了只需要修改几个参数就能使用的范例.企业微信开发中在一个很不显眼的地方放了一个sample.

https://work.weixin.qq.com/api/doc#10128

看似很好理解(并不,背后封装了不算简单的加密方法)

获取参数->解密->输出解密后的参数

然而却因为一个函数引用传参知识点的缺失而困扰了许久

public function VerifyURL($sMsgSignature, $sTimeStamp, $sNonce, $sEchoStr, &$sReplyEchoStr)

我苦苦寻找着这第五个参数到底是什么.基础啊..

自己试着去引用传递了一下,手册中是通过方法改变外部变量的值,我这里在外部输出内部的值,发现都是可以实现的..

public function test(&$a)

{

$a=10;

return ‘test‘;

}

public function test1(){

$this->test($a);

echo $a;// 10

}

那么VerifyURL这样写也不奇怪了

cdec0645add3fc3c328197dda5c76203.png

81178cc93a2a3bb5048d90d76e7ec935.png

public function VerifyURL($sMsgSignature, $sTimeStamp, $sNonce, $sEchoStr, &$sReplyEchoStr)

{if (strlen($this->m_sEncodingAesKey) != 43) {return ErrorCode::$IllegalAesKey;

}$pc = new Prpcrypt($this->m_sEncodingAesKey);//verify msg_signature

$sha1 = new SHA1;$array = $sha1->getSHA1($this->m_sToken, $sTimeStamp, $sNonce, $sEchoStr);$ret = $array[0];if ($ret != 0) {return $ret;

}$signature = $array[1];if ($signature != $sMsgSignature) {return ErrorCode::$ValidateSignatureError;

}$result = $pc->decrypt($sEchoStr, $this->m_sCorpid);if ($result[0] != 0) {return $result[0];

}$sReplyEchoStr = $result[1];return ErrorCode::$OK;

}

View Code

相当于在函数内部声明了一个外部可以访问的变量

最后献上完整的代码,其实就是根据sample文件改了那么一丢丢的内容,关键在于理解..网上发布的各种版本的开启回调模式的文件思路都一个意思..关键在于理解..

cdec0645add3fc3c328197dda5c76203.png

81178cc93a2a3bb5048d90d76e7ec935.png

1 <?php2

3 include_once "WXBizMsgCrypt.php";4

5 $qy= newQy_wechat();6 $qy->test1();7 $qy->valid();8

9

10

11

12 classQy_wechat{13 private $token;14 private $encodingAesKey;15 private $corpId;16

17 function__construct()18 {19 $this->token=‘heTIurA65In‘;20 $this->encodingAesKey=‘k8UmbddUc83SC3sGEyafepiycJNBj6Iw0JGXmkp1weh‘;21 $this->corpId=‘WW4e37698eeb6f73c5‘;22 }23

24 public functionvalid(){25 $sVerifyMsgSig =$_GET["msg_signature"];26 $sVerifyTimeStamp =$_GET["timestamp"];27 $sVerifyNonce = $_GET["nonce"];28 $sVerifyEchoStr = $_GET["echostr"];//需要返回的明文

29

30 $wxcpt = new WXBizMsgCrypt($this->token, $this->encodingAesKey, $this->corpId);31

32 $errCode = $wxcpt -> VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);33 if ($errCode == 0) {34 //

35 // 验证URL成功,将sEchoStr返回

36 echo $sEchoStr;37 } else{38 print("ERR: " . $errCode . "\n\n");39 }40

41 }42 }

View Code

猜想:

那么,开启了回调模式,之后我应该做什么呢?

原文:http://www.cnblogs.com/josefa/p/6074382.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值