示例#1
0
 private function onSubscribe($openid, $from)
 {
     $wxUserInfo = WxSDK::getUserInfo($openid, 'snsapi_base');
     if (empty($wxUserInfo)) {
         Log::warng('first get wxuinfo:' . $openid . ' userinfo fail from ' . $from);
         $wxUserInfo = WxSDK::getUserInfo($openid, 'snsapi_base');
         if (empty($wxUserInfo)) {
             Log::warng('second get wxuinfo:' . $openid . ' userinfo fail from ' . $from);
             return false;
         }
     }
     $userInfo = WxUserModel::findUserByOpenId($openid);
     if (empty($userInfo)) {
         WxUserModel::newOne($wxUserInfo, $from);
     } else {
         WxUserModel::updateWxUserInfo($userInfo, $wxUserInfo, $from);
     }
 }
示例#2
0
 private function toWxLogin()
 {
     $openInfo = WxSDK::getOpenInfo('snsapi_base', WX_APP_ID, WX_APP_SECRET);
     if (empty($openInfo['openid'])) {
         // TODO 这里要显示的告诉用户
         // header('Location: /TODO');
         // exit(0);
         return false;
     }
     $wxUserInfo = WxSDK::getUserInfo($openInfo['openid'], 'snsapi_base');
     if (empty($wxUserInfo)) {
         //
         Log::warng('first get wxuinfo:' . $openInfo['openid'] . ' fail when autologin');
         $wxUserInfo = WxSDK::getUserInfo($openInfo['openid'], 'snsapi_base');
         if (empty($wxUserInfo)) {
             //
             Log::warng('second get wxuinfo:' . $openInfo['openid'] . ' fail when autologin');
             // TODO 这里要显示的告诉用户
             // header('Location: /TODO');
             // exit(0);
             return false;
         }
     }
     $wxDBUserInfo = WxUserModel::findUserByOpenId($openInfo['openid']);
     if (empty($wxDBUserInfo)) {
         // new one
         $from = WxUserModel::SUBSCRIBE_FROM_ALREADY;
         if ((int) $wxUserInfo['subscribe'] == 0) {
             $from = WxUserModel::SUBSCRIBE_FROM_UNSUBSCRIBE;
         }
         $ret = WxUserModel::newOne($wxUserInfo, $from);
         if ($ret === false) {
             // TODO 这里要显示的告诉用户
             // header('Location: /TODO');
             // exit(0);
             return false;
         }
     }
     return $openInfo['openid'];
 }
示例#3
0
文件: SMS.php 项目: noikiy/php
 public static function firstSend($smsPhones, $smsContent)
 {
     $url = 'http://si.800617.com:4400/SendSms.aspx?un=xxx&pwd=xxx' . '&mobile=' . $smsPhones . '&msg=' . urlencode(iconv('utf-8', 'gb2312', $smsContent));
     $beginTime = microtime(true);
     $ret = HttpUtil::request($url, false, false, 3);
     $diff = round(microtime(true) - $beginTime, 3);
     if ((double) $diff > 1.5) {
         Log::warng('second smsservice - escape long time ' . $diff);
     }
     if ($ret === false) {
         return false;
     }
     if (strpos($ret, '=1&') !== false) {
         return true;
     }
     if (strpos($ret, '=-11&') !== false) {
         // 无余额
         AsyncModel::monitor('短信余额不足', '首选短信运营商余额不足');
         return false;
     }
     return false;
 }
示例#4
0
 private function toWxLogin()
 {
     $openInfo = WxSDK::getOpenInfo('snsapi_base', WX_APP_ID, WX_APP_SECRET);
     if (empty($openInfo['openid'])) {
         // TODO 这里要显示的告诉用户
         // header('Location: /TODO');
         // exit(0);
         return;
     }
     $wxUserInfo = WxSDK::getUserInfo($openInfo['openid'], 'snsapi_base');
     if (empty($wxUserInfo)) {
         //
         Log::warng('first get wxuinfo:' . $openInfo['openid'] . ' fail when autologin');
         $wxUserInfo = WxSDK::getUserInfo($openInfo['openid'], 'snsapi_base');
         if (empty($wxUserInfo)) {
             //
             Log::warng('second get wxuinfo:' . $openInfo['openid'] . ' fail when autologin');
             // TODO 这里要显示的告诉用户
             // header('Location: /TODO');
             // exit(0);
             return;
         }
     }
     $ret = WxUserModel::findUserByOpenId($openInfo['openid']);
     if (!empty($ret)) {
         $this->doLoginInWx($openInfo['openid']);
         return;
     } else {
         // create one
         $from = WxUserModel::SUBSCRIBE_FROM_ALREADY;
         if ((int) $wxUserInfo['subscribe'] == 0) {
             $from = WxUserModel::SUBSCRIBE_FROM_UNSUBSCRIBE;
         }
         $ret = WxUserModel::newOne($wxUserInfo, $from);
         if ($ret === false) {
             // TODO 这里要显示的告诉用户
             // header('Location: /TODO');
             // exit(0);
             return;
         }
         $ret = $this->doLoginInWx($openInfo['openid']);
         if ($ret === false) {
             Log::error("create wx user fail! " . json_encode($wxUserInfo, JSON_UNESCAPED_UNICODE));
             // TODO 这里要显示的告诉用户
             // header('Location: /TODO');
             // exit(0);
         }
     }
 }