<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use JiGuang\JSMS as JSMS;
use Redis;

/**
 * @description: 系统级接口
 * @author fengyichao
 * @date 2017年11月13日 上午11:06:13
 */
class SystemController extends ApiController {
	

	function sendSms(Request $request) {
		$phone = $request->mobile;
		//@todo 手机号限制发送时间间隔
		$phone = '15010361063';
		$temp_id = 1;
		$client = new JSMS ( env('JIGUANG_APP_KEY'), env('JIGUANG_APP_SECRET'), [ 
				'disable_ssl' => true 
		] );
		$res = $client->sendCode ( $phone, $temp_id );
		dd($res);
		if ($res ['http_code'] == '200' && isset ( $res ['body'] ['msg_id'] )) {
			//存redis mobile => msg_id
			$key = 'code:sms:' . $phone;
			Redis::setex ( $key, 600, $res ['body'] ['msg_id'] );
			return $this->success ();
		} else {
			return $this->error ( '404', '发送失败' );
		}
	}
	

	function checkCode(Request $request) {
		// 		测试条件放开
		//	return $this->success ();
		$client = new JSMS ( self::$app_key, self::$master_secret, [ 
				'disable_ssl' => true 
		] );
		$phone = $request->mobile;
		//@todo 查找用户库是否有该手机号
		//$phone = '15010361063';
		$key = 'code:sms:' . $phone;
		$msg_id = Redis::get ( $key );
		if (! $msg_id) {
			return $this->success ();
		} else {
			$res = $client->checkCode ( $msg_id, $request->code );
			if ($res ['http_code'] == 200 && $res ['body'] ['is_valid'] === true) {
				return $this->success ();
			} else {
				return $this->error ( 4001, '验证失败' );
			}
		}
	}
}
