微淘
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Admin\Controllers\Activity;
|
namespace App\Admin\Controllers\Activity;
|
||||||
|
|
||||||
|
use App\Admin\Renderable\Activity\Grants;
|
||||||
use App\Models\Activity;
|
use App\Models\Activity;
|
||||||
use App\Models\ActivityGrant;
|
use App\Models\ActivityGrant;
|
||||||
use App\Models\ActivityRule;
|
use App\Models\ActivityRule;
|
||||||
@@ -86,7 +87,6 @@ class IndexController extends AdminController
|
|||||||
$query->where('identity_id', 1);
|
$query->where('identity_id', 1);
|
||||||
})->get()->pluck('nickname', 'id');
|
})->get()->pluck('nickname', 'id');
|
||||||
|
|
||||||
$filter->equal('user_id', '渠道')->select($users);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$filter->column(1 / 2, function ($filter) {
|
$filter->column(1 / 2, function ($filter) {
|
||||||
@@ -100,10 +100,6 @@ class IndexController extends AdminController
|
|||||||
$grid->column('title', '活动名称');
|
$grid->column('title', '活动名称');
|
||||||
$grid->column('code', '活动编号');
|
$grid->column('code', '活动编号');
|
||||||
$grid->column('rule.code', '卡券规则');
|
$grid->column('rule.code', '卡券规则');
|
||||||
$grid->column('所属')->display(function () {
|
|
||||||
return $this->user_id ? $this->user->nickname : '系统';
|
|
||||||
});
|
|
||||||
|
|
||||||
$grid->column('类型')->display(function () {
|
$grid->column('类型')->display(function () {
|
||||||
return $this->type_text;
|
return $this->type_text;
|
||||||
});
|
});
|
||||||
@@ -111,6 +107,20 @@ class IndexController extends AdminController
|
|||||||
$grid->column('days', '延期(天)');
|
$grid->column('days', '延期(天)');
|
||||||
$grid->column('rule.full', '满足金额');
|
$grid->column('rule.full', '满足金额');
|
||||||
$grid->column('rule.take', '扣除金额');
|
$grid->column('rule.take', '扣除金额');
|
||||||
|
$grid->column('发券')
|
||||||
|
->display(function () {
|
||||||
|
return $this->grants->pluck('user_nickname');
|
||||||
|
})
|
||||||
|
->label()
|
||||||
|
->hide();
|
||||||
|
|
||||||
|
$grid->column('核券')
|
||||||
|
->display(function () {
|
||||||
|
return $this->verifications->pluck('user_nickname');
|
||||||
|
})
|
||||||
|
->label()
|
||||||
|
->hide();
|
||||||
|
|
||||||
$grid->column('开始时间')->display(function () {
|
$grid->column('开始时间')->display(function () {
|
||||||
return $this->type == Activity::TYPE_SCOPE ? $this->start_at->format('Y-m-d') : '---';
|
return $this->type == Activity::TYPE_SCOPE ? $this->start_at->format('Y-m-d') : '---';
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ class RuleController extends AdminController
|
|||||||
|
|
||||||
$form->switch('status', '状态')->default(1);
|
$form->switch('status', '状态')->default(1);
|
||||||
$form->saving(function (Form $form) {
|
$form->saving(function (Form $form) {
|
||||||
|
if ($form->code) {
|
||||||
$code = $form->code;
|
$code = $form->code;
|
||||||
|
|
||||||
$ticket = explode('-', $code);
|
$ticket = explode('-', $code);
|
||||||
@@ -72,6 +73,7 @@ class RuleController extends AdminController
|
|||||||
|
|
||||||
$form->full = $match[0];
|
$form->full = $match[0];
|
||||||
$form->take = $price;
|
$form->take = $price;
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ class IndexController extends AdminController
|
|||||||
->whereHas('identity', function ($query) {
|
->whereHas('identity', function ($query) {
|
||||||
$query->where('identity_id', 1);
|
$query->where('identity_id', 1);
|
||||||
})
|
})
|
||||||
->where('type', 'pingan')
|
|
||||||
->get()
|
->get()
|
||||||
->pluck('nickname', 'id');
|
->pluck('nickname', 'id');
|
||||||
|
|
||||||
|
|||||||
@@ -149,9 +149,7 @@ class IndexController extends AdminController
|
|||||||
return $code->only(['name', 'code', 'profit']);
|
return $code->only(['name', 'code', 'profit']);
|
||||||
});
|
});
|
||||||
|
|
||||||
$table = new Table(['名称', '规则项', '分润金额(元)'], $codes->toArray());
|
return new Table(['名称', '规则项', '分润金额(元)'], $codes->toArray());
|
||||||
|
|
||||||
return trim($table->render(), '"');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -24,54 +24,6 @@ class UnionPayController extends Controller
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//签名
|
|
||||||
public function toSign($sign_data)
|
|
||||||
{
|
|
||||||
//签名字段
|
|
||||||
// $sign_data['msg_type'] = $array['msg_type'];
|
|
||||||
// $sign_data['msg_txn_code'] = $array['msg_txn_code'];
|
|
||||||
// $sign_data['msg_crrltn_id'] = $array['msg_crrltn_id'];
|
|
||||||
// $sign_data['msg_flg'] = $array['msg_flg'];
|
|
||||||
// $sign_data['msg_sender'] = $array['msg_sender'];
|
|
||||||
// $sign_data['msg_time'] = $array['msg_time'];
|
|
||||||
// $sign_data['msg_sys_sn'] = $array['msg_sys_sn'];
|
|
||||||
// $sign_data['msg_ver'] = $array['msg_ver'];
|
|
||||||
|
|
||||||
// if (isset($array['msg_rsp_code'])) {
|
|
||||||
// $sign_data['msg_rsp_code'] = $array['msg_rsp_code'];
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (isset($array['msg_rsp_desc'])) {
|
|
||||||
// $sign_data['msg_rsp_desc'] = $array['msg_rsp_desc'];
|
|
||||||
// }
|
|
||||||
|
|
||||||
//将字段名按字母表顺序排序
|
|
||||||
ksort($sign_data);
|
|
||||||
|
|
||||||
//将post的数据utf-8编码
|
|
||||||
$str_data = utf8_encode(http_build_query($sign_data));
|
|
||||||
//获取私钥资源ID
|
|
||||||
$private = config('unionpay.check.self.private');
|
|
||||||
|
|
||||||
if (!file_exists($private)) {
|
|
||||||
throw new \Exception('缺少私钥文件');
|
|
||||||
}
|
|
||||||
|
|
||||||
$private_key = file_get_contents($private);
|
|
||||||
$pkeyid = openssl_get_privatekey($private_key);
|
|
||||||
|
|
||||||
//签名赋值sign
|
|
||||||
if (openssl_sign($str_data, $sign, $pkeyid)) {
|
|
||||||
$sign_data = bin2hex($sign);
|
|
||||||
} else {
|
|
||||||
$sign_data = '';
|
|
||||||
}
|
|
||||||
//释放ssl资源
|
|
||||||
openssl_free_key($pkeyid);
|
|
||||||
|
|
||||||
return $sign_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notes: 银联接口
|
* Notes: 银联接口
|
||||||
* @Author: 玄尘
|
* @Author: 玄尘
|
||||||
@@ -86,10 +38,10 @@ class UnionPayController extends Controller
|
|||||||
unset($inputs['sign']);
|
unset($inputs['sign']);
|
||||||
$action = new UnionPay($inputs, $sign);
|
$action = new UnionPay($inputs, $sign);
|
||||||
|
|
||||||
// $action->addLog();
|
$action->addLog();
|
||||||
$action->start();
|
$action->start();
|
||||||
|
|
||||||
// $action->updateLog();
|
$action->updateLog();
|
||||||
|
|
||||||
return $action->respond();
|
return $action->respond();
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,65 @@ return [
|
|||||||
'002101' => 'reversal',
|
'002101' => 'reversal',
|
||||||
'002102' => 'annul',
|
'002102' => 'annul',
|
||||||
],
|
],
|
||||||
//基础数据
|
//需要校验的数据
|
||||||
|
'validator' => [
|
||||||
|
'002025' => [
|
||||||
|
"msg_type",
|
||||||
|
"msg_txn_code",
|
||||||
|
"msg_crrltn_id",
|
||||||
|
"msg_flg",
|
||||||
|
"msg_sender",
|
||||||
|
"msg_time",
|
||||||
|
"msg_ver",
|
||||||
|
"msg_sys_sn",
|
||||||
|
"req_serial_no",
|
||||||
|
"mkt_code",
|
||||||
|
"amount",
|
||||||
|
"avl_amt",
|
||||||
|
],
|
||||||
|
'002100' => [
|
||||||
|
"msg_type",
|
||||||
|
"msg_txn_code",
|
||||||
|
"msg_crrltn_id",
|
||||||
|
"msg_flg",
|
||||||
|
"msg_sender",
|
||||||
|
"msg_time",
|
||||||
|
"msg_sys_sn",
|
||||||
|
"msg_ver",
|
||||||
|
"req_serial_no",
|
||||||
|
"orig_req_serial_no",
|
||||||
|
"sett_date",
|
||||||
|
"txn_date",
|
||||||
|
"txn_time",
|
||||||
|
"orig_amt",
|
||||||
|
"discount_amt",
|
||||||
|
],
|
||||||
|
'002101' => [
|
||||||
|
"msg_type",
|
||||||
|
"msg_txn_code",
|
||||||
|
"msg_crrltn_id",
|
||||||
|
"msg_flg",
|
||||||
|
"msg_sender",
|
||||||
|
"msg_time",
|
||||||
|
"msg_sys_sn",
|
||||||
|
"msg_ver",
|
||||||
|
"req_serial_no",
|
||||||
|
"orig_req_serial_no",
|
||||||
|
],
|
||||||
|
'002102' => [
|
||||||
|
"msg_type",
|
||||||
|
"msg_txn_code",
|
||||||
|
"msg_crrltn_id",
|
||||||
|
"msg_flg",
|
||||||
|
"msg_sender",
|
||||||
|
"msg_time",
|
||||||
|
"msg_sys_sn",
|
||||||
|
"msg_ver",
|
||||||
|
"req_serial_no",
|
||||||
|
"orig_req_serial_no",
|
||||||
|
],
|
||||||
|
],
|
||||||
|
//入库基础数据
|
||||||
'regular' => [
|
'regular' => [
|
||||||
'002025' => [
|
'002025' => [
|
||||||
"msg_type",
|
"msg_type",
|
||||||
@@ -101,6 +159,7 @@ return [
|
|||||||
"msg_flg" => "报文请求应答标志",
|
"msg_flg" => "报文请求应答标志",
|
||||||
"msg_sender" => "报文发送方",
|
"msg_sender" => "报文发送方",
|
||||||
"msg_time" => "报文日期",
|
"msg_time" => "报文日期",
|
||||||
|
"msg_sys_sn" => "平台流水号",
|
||||||
"msg_ver" => "报文版本号",
|
"msg_ver" => "报文版本号",
|
||||||
"req_serial_no" => "查询流水号",
|
"req_serial_no" => "查询流水号",
|
||||||
"shop_no" => "门店号",
|
"shop_no" => "门店号",
|
||||||
|
|||||||
@@ -40,10 +40,10 @@ class UnionPay extends Init
|
|||||||
{
|
{
|
||||||
//设置基础数据
|
//设置基础数据
|
||||||
$this->getOutBaseData();
|
$this->getOutBaseData();
|
||||||
|
|
||||||
try {
|
|
||||||
//校验数据
|
//校验数据
|
||||||
$this->checkInData();
|
$this->checkInData();
|
||||||
|
try {
|
||||||
|
|
||||||
//查询是否是幂等 就是重复查询
|
//查询是否是幂等 就是重复查询
|
||||||
$this->idempotent();
|
$this->idempotent();
|
||||||
//入库请求参数
|
//入库请求参数
|
||||||
@@ -106,6 +106,9 @@ class UnionPay extends Init
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->outdata['msg_rsp_code'] = $this->msg_rsp_code;
|
||||||
|
$this->outdata['msg_rsp_desc'] = $this->msg_rsp_desc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,10 +146,35 @@ class UnionPay extends Init
|
|||||||
*/
|
*/
|
||||||
public function checkInData()
|
public function checkInData()
|
||||||
{
|
{
|
||||||
if ($this->params['msg_txn_code'] == '002025' && (!isset($this->params['mkt_code']) || empty($this->params['mkt_code']))) {
|
//验签
|
||||||
$this->msg_rsp_code = 9999;
|
$res = $this->checkSign(false, false);
|
||||||
$this->msg_rsp_desc = '聚合营销码不能为空';
|
if ($res !== true) {
|
||||||
|
$this->msg_rsp_code = 9996;
|
||||||
|
$this->msg_rsp_desc = '验签失败';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->msg_txn_code && $this->msg_rsp_code == '0000') {
|
||||||
|
$rule_code = config('unionpay.validator')[$this->msg_txn_code];
|
||||||
|
$rule_msg = config('unionpay.fields')[$this->msg_txn_code]['in'];
|
||||||
|
|
||||||
|
foreach ($rule_code as $item) {
|
||||||
|
$rule[$item] = 'required';
|
||||||
|
$msg[$item . '.required'] = $rule_msg[$item] . '不能为空';
|
||||||
|
}
|
||||||
|
$validator = \Validator::make($this->params, $rule, $msg);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
$this->msg_rsp_code = 9996;
|
||||||
|
$this->msg_rsp_desc = $validator->errors()->first();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$this->msg_rsp_code = 9996;
|
||||||
|
$this->msg_rsp_desc = $this->msg_rsp_code == '0000' ? '平台流水号不能为空。' : $this->msg_rsp_desc;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -230,7 +258,7 @@ class UnionPay extends Init
|
|||||||
{
|
{
|
||||||
$this->outdata['sign'] = $this->getSign();
|
$this->outdata['sign'] = $this->getSign();
|
||||||
$this->model->out_source = $this->outdata;
|
$this->model->out_source = $this->outdata;
|
||||||
if ($this->outdata['msg_rsp_code'] == '9999') {
|
if ($this->outdata['msg_rsp_code'] != '0000') {
|
||||||
$this->model->status = 0;
|
$this->model->status = 0;
|
||||||
}
|
}
|
||||||
$this->model->save();
|
$this->model->save();
|
||||||
|
|||||||
Reference in New Issue
Block a user