|
@@ -16,9 +16,20 @@ use App\Models\MedicalSingleProjectModel;
|
|
use Illuminate\Support\Facades\Cache;
|
|
use Illuminate\Support\Facades\Cache;
|
|
use App\Models\MedicalSmsConfModel;
|
|
use App\Models\MedicalSmsConfModel;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Request;
|
|
|
|
+use Carbon\Carbon;
|
|
|
|
+use GuzzleHttp\Client as GuzzleHttpClient;
|
|
|
|
+use GuzzleHttp\Exception\RequestException;
|
|
|
|
|
|
class OrderController extends Controller
|
|
class OrderController extends Controller
|
|
{
|
|
{
|
|
|
|
+ public $keySmsCodeExist = 'keySmsCodeExist';
|
|
|
|
+
|
|
|
|
+ public $expireTimeExist = '';
|
|
|
|
+
|
|
|
|
+ public $keySmsCode = 'keySmsCode';
|
|
|
|
+
|
|
|
|
+ public $expireTime = '';
|
|
|
|
+
|
|
public function index(Request $request){
|
|
public function index(Request $request){
|
|
|
|
|
|
$conf['nationality'] = '民族';
|
|
$conf['nationality'] = '民族';
|
|
@@ -33,7 +44,8 @@ class OrderController extends Controller
|
|
|
|
|
|
if($request->method() == 'POST') {
|
|
if($request->method() == 'POST') {
|
|
$data = $request->input();
|
|
$data = $request->input();
|
|
- $code = Cache::get($data['mobile'].'post');
|
|
|
|
|
|
+ $key = $this->keySmsCode . $data['mobile'];
|
|
|
|
+ $code = Cache::store('file')->get($key);
|
|
foreach ($data as $key=>$val){
|
|
foreach ($data as $key=>$val){
|
|
if(empty($val)&&$key!='sample_type'&&$key!='sex'){
|
|
if(empty($val)&&$key!='sample_type'&&$key!='sex'){
|
|
$res['state'] = 0;
|
|
$res['state'] = 0;
|
|
@@ -41,7 +53,7 @@ class OrderController extends Controller
|
|
return $this->api($res);
|
|
return $this->api($res);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- /*if($code !== $data['verify']){
|
|
|
|
|
|
+ /* if($code !== $data['verify']){
|
|
$res['state'] = 0;
|
|
$res['state'] = 0;
|
|
$res['err'] = '验证码错误!';
|
|
$res['err'] = '验证码错误!';
|
|
return $this->api($res);
|
|
return $this->api($res);
|
|
@@ -175,6 +187,98 @@ class OrderController extends Controller
|
|
return $this->api($res);
|
|
return $this->api($res);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * 获取验证码
|
|
|
|
+ */
|
|
|
|
+ public function getCode(Request $request)
|
|
|
|
+ {
|
|
|
|
+ //对手机号码进行验证
|
|
|
|
+ $validator = Validator::make($request->all(),
|
|
|
|
+ [
|
|
|
|
+ 'phone' => 'required|regex:/^1[34578]\d{9}$/',
|
|
|
|
+ ],
|
|
|
|
+ [
|
|
|
|
+ 'phone.required' => '手机号码必填',
|
|
|
|
+ 'phone.regex' => '手机号码格式不正确',
|
|
|
|
+ ]
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if ($validator->fails()) {
|
|
|
|
+ $msgs = $validator->errors()->first();
|
|
|
|
+ return json_encode(['code' => 0, 'msg' => $msgs]);
|
|
|
|
+ }
|
|
|
|
+ $phone = $request->get('mobile');
|
|
|
|
+
|
|
|
|
+ $ipkeyexist = $this->keySmsCodeExist . $_SERVER["REMOTE_ADDR"] . Carbon::now()->toDateString();
|
|
|
|
+
|
|
|
|
+ $times = Cache::store('file')->get($ipkeyexist);
|
|
|
|
+ if($times>10) {
|
|
|
|
+ return json_encode(['code' => 0, 'msg' => '一天内一个ip最多发送十次验证码']);
|
|
|
|
+ }else{
|
|
|
|
+ $times++;
|
|
|
|
+ Cache::store('file')->put($ipkeyexist, $times, 60 * 24);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $keyexist = $this->keySmsCodeExist . $phone . Carbon::now()->toDateString();;
|
|
|
|
+ $times = Cache::store('file')->get($keyexist);
|
|
|
|
+ if($times>8) {
|
|
|
|
+ return json_encode(['code' => 0, 'msg' => '一天内最多发送八次验证码']);
|
|
|
|
+ }else{
|
|
|
|
+ $times++;
|
|
|
|
+ Cache::store('file')->put($keyexist, $times, 60 * 24);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $verify_code = (string)mt_rand(1000, 9999);
|
|
|
|
+ $key = $this->keySmsCode . $phone;
|
|
|
|
+ Cache::store('file')->put($key, $verify_code, 60);
|
|
|
|
+ $msg = '【凡云小程序】您的验证码是:' . $verify_code;
|
|
|
|
+
|
|
|
|
+ $result = $this->sendSms($msg, $phone);
|
|
|
|
+// \Log::info($msg . " res:" . $result);
|
|
|
|
+ if (!$result) return json_encode(['code' => 0, 'msg' => '短信发送失败']);
|
|
|
|
+
|
|
|
|
+ return json_encode(['code' => 200, 'msg' => '短信发送成功']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 发送短信
|
|
|
|
+ */
|
|
|
|
+ public function sendSms($msg, $mobile) {
|
|
|
|
+ $url = "http://api.106txt.com/smsGBK.aspx?";
|
|
|
|
+ $account = "swufecredit2017";
|
|
|
|
+ $password = "mask751002";
|
|
|
|
+ $password = strtoupper(md5($password));
|
|
|
|
+ $gwid = 53;
|
|
|
|
+ $message = iconv("UTF-8", "GB2312", $msg);
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ $client = new GuzzleHttpClient();
|
|
|
|
+ $data = [
|
|
|
|
+ 'action' => 'Send',
|
|
|
|
+ 'username' => $account,
|
|
|
|
+ 'password' => $password,
|
|
|
|
+ 'gwid' => $gwid,
|
|
|
|
+ 'mobile' => $mobile,
|
|
|
|
+ 'message' => $message,
|
|
|
|
+ ];
|
|
|
|
+ $apiRequest = $client->post($url, [
|
|
|
|
+ 'form_params' => $data,
|
|
|
|
+ ]);
|
|
|
|
+ $resp = $apiRequest->getBody()->getContents();
|
|
|
|
+ $res = iconv("GB2312", "UTF-8", $resp);
|
|
|
|
+ $re = json_decode($res, true);
|
|
|
|
+ \Log::info("发送短信 到手机:$mobile 内容:$msg RESULT:".$re['RESULT']);
|
|
|
|
+ if (trim($re['CODE']) == '1') {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ } catch (RequestException $re) {
|
|
|
|
+ \Log::info("发送短信错误:".$re->getMessage());
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 请求接口返回内容
|
|
* 请求接口返回内容
|
|
* @param string $url [请求的URL地址]
|
|
* @param string $url [请求的URL地址]
|