//前台首页
class WechatAction extends Action {
private $options;
private $weObj;
function __construct(){
import('ORG.Wechat.Wechat');
$this->options = array(
'token'=>'■■■■■■■', //填写你设定的key
'encodingaeskey'=>'■■■■■■■', //填写加密用的EncodingAESKey
'appid'=>'■■■■■■■■', //填写高级调用功能的app id, 请在微信开发模式后台查询
'appsecret'=>'■■■■■■■■■■', //填写高级调用功能的密钥
'partnerid'=>'88888888', //财付通商户身份标识,支付权限专用,没有可不填
'partnerkey'=>'', //财付通商户权限密钥Key,支付权限专用
'paysignkey'=>'' //商户签名密钥Key,支付权限专用
);
$this->weObj = new Wechat($this->options); //创建实例对象
//$this->weObj->valid();
$this->doCreateMenu();
}
public function index(){
$rev=$this->weObj->getRev();
$type = $rev->getRevType();
switch($type) {
case Wechat::MSGTYPE_TEXT:
$nr=$rev->getRevContent();
$hf=$this->doCX($nr);
if(count($hf)>0){
$this->weObj->news($hf)->reply();
exit;
}
break;
case Wechat::MSGTYPE_EVENT:
doEvent($rev);exit;
break;
case Wechat::MSGTYPE_IMAGE:
break;
}
doHelp();//未处理的事件
}
private function doCreateMenu(){
if($this->weObj->getMenu()!==false)return;//已定义菜单
$cd=
array (
'button' => array (
0 => array (
'name' => '扫码',
'sub_button' => array (
0 => array (
'type' => 'scancode_waitmsg',
'name' => '扫码带提示',
'key' => 'rselfmenu_0_0',
),
1 => array (
'type' => 'scancode_push',
'name' => '扫码推事件',
'key' => 'rselfmenu_0_1',
),
),
),
1 => array (
'name' => '发图',
'sub_button' => array (
0 => array (
'type' => 'pic_sysphoto',
'name' => '系统拍照发图',
'key' => 'rselfmenu_1_0',
),
1 => array (
'type' => 'pic_photo_or_album',
'name' => '拍照或者相册发图',
'key' => 'rselfmenu_1_1',
)
),
),
2 => array (
'type' => 'location_select',
'name' => '发送位置',
'key' => 'rselfmenu_2_0'
),
),
);
$this->weObj->createMenu($cd);
}
private function doEvent($rev){
$sj=$rev->getRevType();
switch($sj['event']){
case Wechat::EVENT_SUBSCRIBE:
//$this->weObj->text('EVENT_SUBSCRIBE key:'.$sj['key'])->reply();exit;
doWelcome();exit;
break;
case Wechat::EVENT_UNSUBSCRIBE:
$this->weObj->text('EVENT_UNSUBSCRIBE key:'.$sj['key'])->reply();exit;
break;
case Wechat::EVENT_MENU_VIEW:
$this->weObj->text('EVENT_MENU_VIEW key:'.$sj['key'])->reply();exit;
break;
case Wechat::EVENT_MENU_CLICK:
$this->weObj->text('EVENT_MENU_CLICK key:'.$sj['key'])->reply();exit;
break;
}
doHelp();//未处理的事件
}
private function doWelcome(){
$this->weObj->text("欢迎您来到【宜都CBD】!ydcbd-com为您提供最新数码产品报价、优惠活动、经验技巧等信息。谢谢您的关注!")->reply();
}
private function doHelp(){
$this->weObj->text("有什么可以帮您?您可以发送“手机报价”、“搞笑”等命令给我哦……")->reply();
}
private function doimg($pic=''){
if(IS_SAE){
return str_replace('/Public/upload',sae_storage_root('Public').'/upload',$pic);
}else{
return $pic;
}
}
private function doCX($kw=''){
$s=trim($kw);
$r=array();$i=0;
if(empty($s))return $r;
$tj = '(Tags like "%'.$s.'%" OR Caption like "%'.$s.'%" OR Content like "%'.$s.'%")';
$rs=M('item')->where($tj)->order('UpdateTime DESC')->limit('10')->select();
foreach($rs as $v){
$r[$i++]=array(
'ti
'Desc
'PicUrl'=>$this->doimg($v['Thumbnail']),
'Url'=>'http://ydcbd.com/v2/'.$v['ID'].'.html'
);
}
return $r;
}
}
查询可以正常工作。但 doWelcome doHelp都不行,菜单也没有出现,求助!
最佳答案