| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\common\controllers;
- use yii\web\Controller;
- use app\modules\admin\models\wechat_mp\CardForm;
- use \EasyWeChat\Kernel\Support\XML;
- class WechatMpController extends Controller
- {
- public $wechat_mp;
-
- public function init() {
- parent::init();
-
- $form = new CardForm();
- $this->wechat_mp = $form->wechat_mp;
- }
- public function actionIndex() {
- $server = $this->wechat_mp->server;
- $server->push(function($message){
- return $this->_message($message);
- });
- $response = $server->serve();
- // 将响应输出
- $response->send();
- }
-
- private function _message($message){
- $MsgType = $message['MsgType'];
- //e.g. _message_event
- $action = '_message_' . $MsgType;
- if($this->hasMethod($action)){
- try{
- $actionRes = $this->$action($message);
- } catch (\Exception $e){
- \Yii::error([__METHOD__, $message, $e->getTrace()]);
- return "";
- }
- \Yii::error([__METHOD__, $message, $actionRes]);
- return $actionRes ? $actionRes : "";
- }
- return "";
- }
-
- private function _message_event($message){
- $event = $message['Event'];
- $action = 'event_' . $event;
- if($this->hasMethod($action)){
- try{
- $actionRes = $this->$action($message);
- } catch (\Exception $e){
- \Yii::error([__METHOD__, $message, $e->getTrace()]);
- return "";
- }
- \Yii::error([__METHOD__, $message, $actionRes]);
- return $actionRes ? $actionRes : "";
- }
- return "";
- }
- public function actionTest() {
- $xml = '<xml>
- <ToUserName> <![CDATA[gh_fc0a06a20993]]> </ToUserName>
- <FromUserName> <![CDATA[oBolB1pon-jHiNVRZ8fgD8NMfxHg]]> </FromUserName>
- <CreateTime>1472551036</CreateTime>
- <MsgType> <![CDATA[event]]> </MsgType>
- <Event> <![CDATA[user_get_card]]> </Event>
- <CardId> <![CDATA[pBolB1muXbHzW0xjoGonZ_okhVzo]]> </CardId>
- <IsGiveByFriend>0</IsGiveByFriend>
- <UserCardCode> <![CDATA[416008848346]]> </UserCardCode>
- <FriendUserName> <![CDATA[]]> </FriendUserName>
- <OuterId>0</OuterId>
- <OldUserCardCode> <![CDATA[]]> </OldUserCardCode>
- <OuterStr> <![CDATA[2]]> </OuterStr>
- <IsRestoreMemberCard>0</IsRestoreMemberCard>
- <IsRecommendByFriend>0</IsRecommendByFriend>
- <UnionId>o6_bmasdasdsad6_2sgVt7hMZOPfL</UnionId>
- </xml>';
- $message = XML::parse($xml);
- $this->event_user_get_card($message);
- return "";
- }
- public function event_user_get_card($message) {
- $fromUser = trim($message['FromUserName']);
- $CardId = trim($message['CardId']);
- $OuterStr = trim($message['OuterStr']);
- $code = trim($message['UserCardCode']);
- $form = new CardForm();
- $res = $form->bindSaas($code, $CardId, $fromUser, $OuterStr);
- \Yii::error([__METHOD__, $message, $res]);
- return '';
- }
- }
|