public static function sendSmsCode($mobile, $code) { $send_url = "http://yunpian.com/v1/sms/send.json"; $apikey = Config::get('app.yunpian.apikey'); $tpl = Config::get('app.yunpian.tpl'); $smsText = sprintf($tpl, $code); $postData = "apikey={$apikey}&mobile={$mobile}&text={$smsText}"; Tool::getCurl($send_url, 60, 'post', $postData); return true; }
/** * @对外接口,获取用户信息 * @param null * @return mixed */ public static function getUserInfo($accessToken, $openid, $lang = "zh_CN") { $api = sprintf(self::GET_USER_INFO_API, $accessToken, $openid, $lang); $ret = Tool::getCurl($api, 30); if ($ret->httpCode !== 200 or $ret->error or $ret->errno) { throw new \Exception("curl get user info error"); } $ret = $ret->content; $userinfo = \Cache::get($openid); if (!$userinfo) { \Cache::put($openid, $ret, 60 * 24); } return \Cache::get($openid); }
public function location() { $inputData = $this->inputData->only('longitude', 'latitude'); $validator = Validator::make($inputData, ['longitude' => 'required', 'latitude' => 'required']); if ($validator->fails()) { return RestHelp::parametersIllegal($validator->messages()->first()); } $baiduMapApi = Config::get('baidumap.api.inverse_address'); $ret = Tool::getCurl(sprintf($baiduMapApi, $inputData['longitude'], $inputData['latitude'])); if ($ret->httpCode != 200 or $ret->errno != 0) { return RestHelp::encodeResult(23002, "location fails"); } $baiduRet = json_decode($ret->content); $formattedAddress = $baiduRet->result->formatted_address; $spec = $baiduRet->result->sematic_description; $province = $baiduRet->result->addressComponent->province; $trimProvince = ['省']; $province = $this->strTrim($province, $trimProvince); $province = Address::where("address", 'like', "%{$province}%")->first(); if (!$province) { return RestHelp::encodeResult(23003, "can not location province"); } $city = $baiduRet->result->addressComponent->city; $trimCity = ['市']; $city = $this->strTrim($city, $trimCity); $city = Address::where("address", 'like', "%{$city}%")->where('parent_id', $province->id)->first(); if (!$city) { return RestHelp::encodeResult(23003, "can not location city"); } $district = $baiduRet->result->addressComponent->district; $trimDistrict = ['区', '县', '镇']; $district = $this->strTrim($district, $trimDistrict); $district = Address::where("address", 'like', "%{$district}%")->first(); if (!$district) { return RestHelp::encodeResult(23003, "can not location district"); } $arrRet = array(); $arrRet['province']['id'] = $province->id; $arrRet['province']['name'] = $province->address; $arrRet['city']['id'] = $city->id; $arrRet['city']['name'] = $city->address; $arrRet['county']['id'] = $district->id; $arrRet['county']['name'] = $district->address; $arrRet['formatted'] = $formattedAddress; $arrRet['specific'] = $spec; return RestHelp::success($arrRet); }
/** * 获得微信jsapi的配置信息 * @return stdClass */ public function getJsapiConfig() { $mq = new MQ(); $jsapiTicket = $mq->getWeixinJsapiTicketByName('buyer'); $url = \Request::fullUrl(); $noncestr = Tool::getRandChar(16); $timestamp = time(); $weixinClient = new WeixinClient(); $signature = $weixinClient->getSignature($jsapiTicket, $url, $noncestr, $timestamp); $config = new \stdClass(); $config->jsapiTicket = $jsapiTicket; $config->url = $url; $config->noncestr = $noncestr; $config->timestamp = $timestamp; $config->signature = $signature; $config->appid = \Config::get('weixin.buyer.appid'); return $config; }