php 微信第三方ticket,微信第三方平台定时接收component_verify_ticket,第三方平台ticket推送_PHP教程...

微信第三方平台定时接收component_verify_ticket,第三方平台ticket推送

背景:

获取第三方平台令牌(component_access_token),增加了component_verify_ticket参数。component_verify_ticket由公众平台每隔10分钟,持续推送给第三方平台方(在创建公众号第三方平台审核通过后,才会开始推送)。

目标:

接收微信服务器推送的component_verify_ticket

文档说明:(参见微信开放平台文档)

推送component_verify_ticket协议

在公众号第三方平台创建审核通过后,微信服务器会向其“授权事件接收URL”每隔10分钟定时推送component_verify_ticket。第三方平台方在收到ticket推送后也需进行解密(详细请见【消息加解密接入指引】),接收到后必须直接返回字符串success。

于是在开放平台管理中心中寻找“授权事件接收URL”,如下图。

10381f5d4e391db71ea3e9454ba999a7.png

截获微信推送component_verify_ticket的POST请求地址:

http://[授权事件接收URL]?encrypt_type=aes

&timestamp=1438521627

&nonce=33431792

&msg_signature=xxxxxx

&signature=xxxxxxx

请求内容格式:

知晓了微信推送xml的格式,接下来要做的就是解密xml,于是继续阅读文档,(参见 微信开放平台 消息加解密指引)

关于解密,微信公众平台提供了c++, php, java, python, c# 5种语言的示例代码(点击下载)

这里基于php版本的示例代码来实现PHP接收component_verify_ticket(基于CI框架)

1 /**2 *“授权事件接收URL”每隔10分钟接收component_verify_ticket3 **/

4 public functionticket(){5 require_once(DPL_LIBS.'wx/wxBizMsgCrypt.php');6 $wx = new WXBizMsgCrypt($this->token, $this->encodingAesKey, $this->appId);7

8 $inputs = (object)array(9 'encrypt_type' => '',

10 'timestamp' => '',

11 'nonce' => '',

12 'msg_signature' => '',

13 'signature' => ''

14 );15 foreach ($inputs as $key => &$value) {16 $tmp = $this->input->get($key);17 if (!empty($tmp)){18 $value = $tmp;19 }20 }21 $this->save_key_value('component_verify_ticket_get',json_encode($inputs));22

23 $fp = fopen("php://input","r");24 if (isset($fp) && !empty($fp)){25 $this->post_xml = stream_get_contents($fp);26 if (empty($this->post_xml)){27 return;28 }29 }30 $this->save_key_value('component_verify_ticket_post',$this->post_xml);31

32 $this->xml = str_replace('AppId', 'ToUserName', $this->post_xml);33

34 $msg_xml = '';35 $errCode = $wx->decryptMsg($inputs->msg_signature, $inputs->timestamp, $inputs->nonce, $this->xml, $msg_xml);36

37 $componentVerifyTicket = $this->parse_xml($msg_xml,'ComponentVerifyTicket');38

39 $this->save_key_value('component_verify_ticket',$componentVerifyTicket);40 if ($errCode == 0){41 echo "success";42 }else{43 }44 return;45 }

分享请注明:

原文出自http://www.cnblogs.com/wenki/p/4700828.html

http://www.bkjia.com/PHPjc/1042462.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1042462.htmlTechArticle微信第三方平台定时接收component_verify_ticket,第三方平台ticket推送 背景: 获取第三方平台令牌(component_access_token),增加了component_verify...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值