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); } }
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']; }
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; }
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); } } }