feat(store_order): 增加支付功能并修复相关bug
This commit is contained in:
parent
6dbd3b328b
commit
5eebccb700
@ -130,7 +130,7 @@ class StoreOrderController extends BaseAdminController
|
||||
$addressId = (int)$this->request->post('address_id');
|
||||
$auth_code = $this->request->post('auth_code'); //微信支付条码
|
||||
$params = $this->request->post();
|
||||
if ($auth_code==''&&$pay_type!=PayEnum::CASH_PAY) {
|
||||
if ($auth_code == '' && $pay_type != PayEnum::CASH_PAY) {
|
||||
return $this->fail('支付条码不能为空');
|
||||
}
|
||||
if (count($cartId) > 100) {
|
||||
@ -159,7 +159,7 @@ class StoreOrderController extends BaseAdminController
|
||||
Redis::send('send-code-pay', ['number' => $order['number']]);
|
||||
return $this->success('用户支付中');
|
||||
}
|
||||
return $this->success('支付成功', ['out_trade_no'=>$result['out_trade_no'],'pay_type'=>PayEnum::WECHAT_PAY_BARCODE,'transaction_id'=>$result['transaction_id']]);
|
||||
return $this->success('支付成功', ['out_trade_no' => $result['out_trade_no'], 'pay_type' => PayEnum::WECHAT_PAY_BARCODE, 'transaction_id' => $result['transaction_id']]);
|
||||
case PayEnum::ALIPAY_BARCODE:
|
||||
//支付宝条码支付
|
||||
$result = PaymentLogic::ali_auth_code($auth_code, $order);
|
||||
@ -170,7 +170,7 @@ class StoreOrderController extends BaseAdminController
|
||||
return $this->success('用户支付中');
|
||||
}
|
||||
$result['create_time'] = $order['create_time'];
|
||||
return $this->success('支付成功', ['out_trade_no'=>$result['out_trade_no'],'pay_type'=>PayEnum::ALIPAY_BARCODE,'transaction_id'=>$result['trade_no']]);
|
||||
return $this->success('支付成功', ['out_trade_no' => $result['out_trade_no'], 'pay_type' => PayEnum::ALIPAY_BARCODE, 'transaction_id' => $result['trade_no']]);
|
||||
default:
|
||||
return $this->fail('支付方式错误');
|
||||
}
|
||||
@ -179,17 +179,73 @@ class StoreOrderController extends BaseAdminController
|
||||
}
|
||||
}
|
||||
|
||||
public function pay()
|
||||
{
|
||||
$order_id = (int)$this->request->post('order_id');
|
||||
$pay_type = (int)$this->request->post('pay_type');
|
||||
$auth_code = $this->request->post('auth_code'); //微信支付条码
|
||||
if ($auth_code == '' && $pay_type != PayEnum::CASH_PAY) {
|
||||
return $this->fail('支付条码不能为空');
|
||||
}
|
||||
$params = $this->request->post();
|
||||
$where = [
|
||||
'id' => $order_id,
|
||||
'paid' => 0,
|
||||
];
|
||||
$order = StoreOrder::where($where)->find();
|
||||
if (!$order) {
|
||||
return $this->fail('订单不存在或已支付');
|
||||
}
|
||||
|
||||
switch ($pay_type) {
|
||||
|
||||
case PayEnum::CASH_PAY:
|
||||
//现金支付
|
||||
PayNotifyLogic::handle('cash_pay', $order['order_id']);
|
||||
return $this->success('现金支付成功');
|
||||
break;
|
||||
case PayEnum::WECHAT_PAY_BARCODE:
|
||||
//微信条码支付
|
||||
$result = PaymentLogic::codepay($auth_code, $order);
|
||||
if (PaymentLogic::hasError()) {
|
||||
return $this->fail(PaymentLogic::getError(), $params);
|
||||
}
|
||||
if (isset($result['trade_state_desc']) && $result['trade_state_desc'] == '支付成功') {
|
||||
Log::error(json_encode($result));
|
||||
PayNotifyLogic::handle('wechat_common', $result['out_trade_no'], $result);
|
||||
} else {
|
||||
Redis::send('send-code-pay', ['number' => $order['number']]);
|
||||
return $this->success('用户支付中');
|
||||
}
|
||||
return $this->success('支付成功', ['out_trade_no' => $result['out_trade_no'], 'pay_type' => PayEnum::WECHAT_PAY_BARCODE, 'transaction_id' => $result['transaction_id']]);
|
||||
case PayEnum::ALIPAY_BARCODE:
|
||||
//支付宝条码支付
|
||||
$result = PaymentLogic::ali_auth_code($auth_code, $order);
|
||||
if (PaymentLogic::hasError()) {
|
||||
return $this->fail(PaymentLogic::getError(), $params);
|
||||
}
|
||||
if ($result['msg'] !== 'Success') {
|
||||
return $this->success('用户支付中');
|
||||
}
|
||||
$result['create_time'] = $order['create_time'];
|
||||
return $this->success('支付成功', ['out_trade_no' => $result['out_trade_no'], 'pay_type' => PayEnum::ALIPAY_BARCODE, 'transaction_id' => $result['trade_no']]);
|
||||
default:
|
||||
return $this->fail('支付方式错误');
|
||||
}
|
||||
return $this->fail('支付失败');
|
||||
}
|
||||
|
||||
public function writeoff_order()
|
||||
{
|
||||
$params = (new OrderValidate())->post()->goCheck('check');
|
||||
$count = StoreOrder::where('verify_code',$params['verify_code'])->count();
|
||||
if(empty($count)){
|
||||
$count = StoreOrder::where('verify_code', $params['verify_code'])->count();
|
||||
if (empty($count)) {
|
||||
return $this->fail('无该核销码请检查');
|
||||
}
|
||||
$res = OrderLogic::writeOff($params);
|
||||
if ($res) {
|
||||
return $this->success('核销成功');
|
||||
}
|
||||
return $this->fail('核销失败'.OrderLogic::getError());
|
||||
return $this->fail('核销失败' . OrderLogic::getError());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user