예제 #1
0
 public function __call($method, $arguments)
 {
     $instance = \Weixin::instance('message');
     if (method_exists($instance, $method)) {
         call_user_func_array([$instance, $method], $arguments);
     }
 }
예제 #2
0
파일: Api.php 프로젝트: houdunwang/hdcms
 public function __construct()
 {
     //加载站点缓存
     service('site')->loadSite();
     //与微信官网通信绑定验证
     \Weixin::valid();
     $this->instance = \Weixin::instance('message');
 }
예제 #3
0
파일: site.php 프로젝트: houdunwang/hdcms
 public function doSitePushWechat()
 {
     $id = q('get.id');
     $data = $this->db->where('id', $id)->pluck('data');
     $data = json_decode($data, TRUE);
     $data = $this->addHttp($data);
     $res = \Weixin::instance('button')->createButton($data);
     if ($res['errcode'] == 0) {
         $this->db->whereNotIn('id', [$id])->update(['status' => 0]);
         $this->db->where('id', $id)->update(['status' => 1]);
         message('推送微信菜单成功', 'back', 'success');
     }
     message($res['errinfo'], 'back', 'error', 5);
 }
예제 #4
0
파일: WeChat.php 프로젝트: houdunwang/hdcms
 /**
  * 使用微信openid自动登录
  */
 public function loginByOpenid()
 {
     //认证订阅号或服务号,并且开启自动登录时获取微信帐户openid自动登录
     if ($info = \Weixin::instance('oauth')->snsapiUserinfo()) {
         $user = $this->where('openid', $info['openid'])->first();
         if (!$user) {
             //帐号不存在时使用openid添加帐号
             $data['openid'] = $info['openid'];
             $data['nickname'] = $info['nickname'];
             $data['icon'] = $info['headimgurl'];
             if ($uid = !$this->add($data)) {
                 message($this->getError(), 'back', 'error');
             }
             $user = Db::table('member')->where('uid', $uid)->first();
         }
         Session::set('member', $user);
         return TRUE;
     }
     return FALSE;
 }
예제 #5
0
파일: Member.php 프로젝트: houdunwang/hdcms
 public function weixinLogin()
 {
     if (IS_WEIXIN && v('site.wechat.level') >= 3) {
         //认证订阅号或服务号,并且开启自动登录时获取微信帐户openid自动登录
         if ($info = \Weixin::instance('oauth')->snsapiUserinfo()) {
             $user = $this->db->where('openid', $info['openid'])->first();
             if (!$user) {
                 //帐号不存在时使用openid添加帐号
                 $this->db['openid'] = $info['openid'];
                 $this->db['nickname'] = $info['nickname'];
                 $this->db['icon'] = $info['headimgurl'];
                 $uid = $this->db->save();
                 $user = $this->db->find($uid);
             }
             //更新access_token
             $user['access_token'] = md5($user['username'] . $user['password'] . c('app.key'));
             $user->save();
             Session::set('member_uid', $user['uid']);
             return TRUE;
         }
     }
 }
예제 #6
0
파일: Pay.php 프로젝트: houdunwang/hdcms
 public function weixinNotify()
 {
     $res = Weixin::instance('pay')->getNotifyMessage();
     $pay = Db::table('pay')->where('tid', $res['out_trade_no'])->first();
     $data['status'] = 1;
     $data['type'] = 'wechat';
     Db::table('pay')->where('tid', $res['out_trade_no'])->update($data);
     //记录支付记录
     $log['siteid'] = SITEID;
     $log['uid'] = $pay['uid'];
     Db::table('credits_record')->insert($log);
     $module = Db::table('modules')->where('name', $pay['module'])->first();
     //通知模块
     if ($module['is_system'] == 1) {
         //系统模块
         $class = '\\module\\' . $pay['module'] . '\\pay';
     } else {
         $class = '\\addons\\' . $pay['module'] . '\\pay';
     }
     if (class_exists($class)) {
         $obj = new $class($pay['module']);
         $obj->doWebAsync($res);
     }
 }
예제 #7
0
파일: site.php 프로젝트: houdunwang/hdcms
 public function doSitePreview()
 {
     $uid = q('post.uid');
     $id = q('post.id');
     $user = Db::table('member')->find($uid);
     $material = $this->db->find($id);
     $data['touser'] = $user['openid'];
     $data['mpnews']['media_id'] = $material['media_id'];
     $data['msgtype'] = 'mpnews';
     $res = Weixin::instance('message')->preview($data);
     if (empty($res['errcode'])) {
         message('发送消息成功,请查看微信客户端', '', 'success');
     } else {
         message('发送失败' . $res['errmsg'], '', 'error');
     }
 }
예제 #8
0
 function __construct()
 {
     $this->weixin = Weixin::instance();
 }
예제 #9
0
파일: Weixin.php 프로젝트: im286er/Weixin-3
 /**
  * 返回唯一的实例
  * @return Weixin
  */
 public static function instance()
 {
     if (!isset(self::$instance)) {
         $class = __CLASS__;
         self::$instance = new $class();
     }
     return self::$instance;
 }