用户设置支付密码,短信校验,支付校验密码
This commit is contained in:
parent
8902c720be
commit
36d371710c
app
@ -181,6 +181,17 @@ class OrderController extends BaseApiController
|
||||
}
|
||||
|
||||
$user=User::where('id',$this->userId)->find();
|
||||
if($pay_type == PayEnum::PURCHASE_FUNDS || $pay_type == PayEnum::BALANCE_PAY ){
|
||||
if(!$params['password']){
|
||||
return $this->fail('缺失参数');
|
||||
}
|
||||
if(empty($user['pay_password'])){
|
||||
return $this->fail('请设置密码');
|
||||
}
|
||||
if (payPassword($params['password']) != $user['pay_password']){
|
||||
return $this->fail('密码错误');
|
||||
}
|
||||
}
|
||||
|
||||
$order = OrderLogic::createOrder($cartId, $addressId, $user, $params);
|
||||
|
||||
|
@ -7,6 +7,8 @@ use app\api\logic\user\UserLogic;
|
||||
use app\api\validate\UserValidate;
|
||||
use app\common\enum\PayEnum;
|
||||
use app\common\logic\PaymentLogic;
|
||||
use support\Cache;
|
||||
use think\Exception;
|
||||
|
||||
|
||||
/**
|
||||
@ -133,4 +135,55 @@ class UserController extends BaseApiController
|
||||
return $this->success('ok',$res);
|
||||
}
|
||||
|
||||
public function send_sms()
|
||||
{
|
||||
$res = (new UserLogic())->dealSendSms($this->userId);
|
||||
if ($res){
|
||||
return $this->success('发送成功');
|
||||
}
|
||||
return $this->fail('发送失败');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function set_payPassword()
|
||||
{
|
||||
$params = (new UserValidate())->post()->goCheck('setPayPassword');
|
||||
$remark = $this->userId.'_payPassword';
|
||||
$code = Cache::get($remark);
|
||||
if ($code && isset($params['code']) && $code !== $params['code']) {
|
||||
throw new Exception('验证码错误');
|
||||
}
|
||||
if ($params['rePassword'] !== $params['password'])
|
||||
return $this->fail('两次密码不一致');
|
||||
$result = UserLogic::dealPayPassword($params,$this->userId);
|
||||
if (!$result) {
|
||||
return $this->fail('设置失败');
|
||||
}
|
||||
return $this->success('设置成功');
|
||||
}
|
||||
|
||||
|
||||
|
||||
//修改
|
||||
// public function withdrawalPassword()
|
||||
// {
|
||||
// $data = $this->request->params(['repassword', 'password', 'sms_code']);
|
||||
// $sms_code = app()->make(SmsService::class)->checkSmsCode($this->user->phone, $data['sms_code'], 'change_pwd');
|
||||
// if (!$data['sms_code'] || !$sms_code) {
|
||||
// return app('json')->fail('验证码不正确');
|
||||
// }
|
||||
// if (!$this->user->phone)
|
||||
// return app('json')->fail('请先绑定手机号');
|
||||
// if (empty($data['repassword']) || empty($data['password']))
|
||||
// return app('json')->fail('请输入提现密码');
|
||||
// if ($data['repassword'] !== $data['password'])
|
||||
// return app('json')->fail('两次密码不一致');
|
||||
// $password = $this->repository->encodePassword($data['password']);
|
||||
// $this->repository->update($this->request->uid(), ['withdrawal_pwd' => $password]);
|
||||
// return app('json')->success('绑定成功');
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
@ -14,7 +14,9 @@ use app\common\{logic\BaseLogic,
|
||||
model\user\User,
|
||||
model\user\UserRecharge,
|
||||
model\user\UserShip,
|
||||
service\SmsService,
|
||||
service\wechat\WeChatMnpService};
|
||||
use support\Cache;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
@ -164,5 +166,36 @@ class UserLogic extends BaseLogic
|
||||
->select()->toArray();
|
||||
}
|
||||
|
||||
public function dealSendSms($uid)
|
||||
{
|
||||
$code = generateRandomCode();
|
||||
$phone = User::where('id',$uid)->value('mobile');
|
||||
if(empty($phone)){
|
||||
throw new \Exception('用户未设置手机号');
|
||||
}
|
||||
$template = getenv('SMS_TEMPLATE');
|
||||
$check =(new SmsService())->client($phone,$template,$code);
|
||||
if($check){
|
||||
$remark = $uid.'_payPassword';
|
||||
Cache::set($remark,$code,5*60);
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function dealPayPassword($params,$uid)
|
||||
{
|
||||
$password = payPassword($params['password']);
|
||||
return User::where('id',$uid)
|
||||
->update(['pay_password'=>$password]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -18,14 +18,26 @@ class UserValidate extends BaseValidate
|
||||
'code' => 'require',
|
||||
'store_id' => 'require',
|
||||
'mobile' => 'require',
|
||||
'phone' => 'require|number',
|
||||
'password' => 'require',
|
||||
'rePassword' => 'require',
|
||||
|
||||
];
|
||||
|
||||
protected $message = [
|
||||
'code.require' => '参数缺失',
|
||||
'store_id.require' => '门店id',
|
||||
'mobile.require' => '手机',
|
||||
'phone.require' => '手机',
|
||||
'password.require' => '密码',
|
||||
'rePassword.require' => '确认密码',
|
||||
];
|
||||
|
||||
//设置/更新密码
|
||||
public function sceneSetPayPassword()
|
||||
{
|
||||
return $this->only(['code','password','rePassword']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 获取小程序手机号场景
|
||||
|
@ -476,3 +476,14 @@ if (!function_exists('countRate')) {
|
||||
return bcmul(bcdiv((bcsub($nowValue, $lastValue, 2)), $lastValue, 4), 100, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!function_exists('payPassword')) {
|
||||
//支付密码
|
||||
function payPassword($password){
|
||||
return password_hash($password,PASSWORD_BCRYPT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -23,7 +23,9 @@ use app\common\model\system_store\SystemStore;
|
||||
use app\common\model\system_store\SystemStoreStaff;
|
||||
use app\common\model\user_recharge\UserRecharge;
|
||||
use app\store\validate\store_order\StoreOrderValidate;
|
||||
use support\Cache;
|
||||
use support\Log;
|
||||
use think\Exception;
|
||||
use Webman\RedisQueue\Redis;
|
||||
|
||||
/**
|
||||
@ -136,6 +138,13 @@ class StoreOrderController extends BaseAdminController
|
||||
if (count($cartId) > 100) {
|
||||
return $this->fail('购物车商品不能超过100个');
|
||||
}
|
||||
if($pay_type == PayEnum::PURCHASE_FUNDS){
|
||||
$remark = $uid.'_smsPay';
|
||||
$code = Cache::get($remark);
|
||||
if ($code && isset($params['code']) && $code !== $params['code']) {
|
||||
throw new Exception('验证码错误');
|
||||
}
|
||||
}
|
||||
$user = null;
|
||||
if ($uid) {
|
||||
$user = User::where('id', $uid)->find();
|
||||
|
Loading…
x
Reference in New Issue
Block a user