第二次更新
This commit is contained in:
@@ -17,6 +17,7 @@ use app\api\model\partners\Order as OrderModel;
|
||||
use app\common\model\Partners as PartnersModel;
|
||||
use app\common\crypto\RsaUtil;
|
||||
use app\common\service\PartnersBalance;
|
||||
use app\common\model\qyt\Enterprise as EnterpriseModel;
|
||||
use app\common\service\QytOil;
|
||||
use app\store\model\order\QrCode as QrCodeModel;
|
||||
use cores\exception\BaseException;
|
||||
@@ -85,6 +86,8 @@ class OilCard extends Controller
|
||||
$oilCardType = $data['oilCardType'] ?? '';
|
||||
// 企油通:司机姓名(下单平台必传,用于运单油费下发)
|
||||
$driverName = trim((string)($data['name'] ?? ''));
|
||||
// 企油通:司机身份证号。平安银行通道要求实名必传,支付宝企业码通道可不传
|
||||
$idCard = strtoupper(trim((string)($data['idCard'] ?? '')));
|
||||
// 请求参数orgNo与请求头appKey不存在对应关系
|
||||
if($partners['orgNo'] != $orgNo){
|
||||
return $this->oilRenderError('12','0014');
|
||||
@@ -95,6 +98,19 @@ class OilCard extends Controller
|
||||
if($driverName === ''){
|
||||
return $this->oilRenderError('12','0001', '', '缺少必填请求参数 name(司机姓名)');
|
||||
}
|
||||
// 解析本单使用的企油通企业:合作商绑定的企业 -> 默认企业
|
||||
$enterprise = EnterpriseModel::resolve((int)$partners['qyt_enterprise_id']);
|
||||
if(!$enterprise){
|
||||
$this->saveLog('share 未匹配到可用的企油通企业,partners_id=' . $partners['partners_id']);
|
||||
return $this->oilRenderError('99','9999', '', '系统未配置可用企业,请联系平台');
|
||||
}
|
||||
// 身份证号:传了就必须合法;该企业当前通道要求实名时不传直接拒单
|
||||
if($idCard !== '' && !preg_match('/^\d{17}[\dX]$/', $idCard)){
|
||||
return $this->oilRenderError('12','0013', '', 'idCard 身份证号格式不正确(18位)');
|
||||
}
|
||||
if($idCard === '' && $enterprise->requireIdCard()){
|
||||
return $this->oilRenderError('12','0001', '', '缺少必填请求参数 idCard(司机身份证号,当前支付通道要求实名)');
|
||||
}
|
||||
// 金额:由下单平台直接传入(单位:元,最多两位小数)
|
||||
if($amount === '' || !preg_match('/^\d{1,8}(\.\d{1,2})?$/', (string)$amount) || (float)$amount <= 0){
|
||||
return $this->oilRenderError('12','0013', '', 'amount 金额格式不正确(单位:元,最多两位小数且大于0)');
|
||||
@@ -122,6 +138,10 @@ class OilCard extends Controller
|
||||
$created = $OrderModel->saveOrder([
|
||||
'mobile' => $mobile,
|
||||
'driver_name' => $driverName,
|
||||
'id_card' => $idCard,
|
||||
// 企业与通道随单固化:之后改绑定或切默认企业,在途单仍按下单时的企业发放
|
||||
'qyt_enterprise_id' => $enterprise['enterprise_id'],
|
||||
'passageway' => $enterprise['passageway'],
|
||||
'oilCardType' => $oilCardType,
|
||||
'oilCardNo' => $oilCardNo,
|
||||
'partners_order_no' => $saleOrderNo,
|
||||
@@ -237,7 +257,12 @@ class OilCard extends Controller
|
||||
return $this->oilRenderError('12','0013', '', '未找到对应订单');
|
||||
}
|
||||
// 企油通:生成司机免登加油 H5 地址(7.15)。出参 qrCode 结构不变,值由二维码链接改为 H5 URL。
|
||||
$h5Url = (new QytOil())->h5Url($order['mobile']);
|
||||
// creditcode 取本单固化的企业,把登录固定到该企业;企业须已通过企油通审核
|
||||
$orderEnterprise = EnterpriseModel::detail((int)$order['qyt_enterprise_id']);
|
||||
if(!$orderEnterprise){
|
||||
return $this->oilRenderError('12','0013', '', '本单绑定的企业不存在,无法生成加油链接');
|
||||
}
|
||||
$h5Url = QytOil::forEnterprise($orderEnterprise)->h5Url($order['mobile']);
|
||||
if(!$h5Url){
|
||||
return $this->oilRenderError('12','0013', '', '生成加油链接失败');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user