微淘
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Admin\Controllers\Activity;
|
||||
|
||||
use App\Admin\Renderable\Activity\Grants;
|
||||
use App\Models\Activity;
|
||||
use App\Models\ActivityGrant;
|
||||
use App\Models\ActivityRule;
|
||||
@@ -86,7 +87,6 @@ class IndexController extends AdminController
|
||||
$query->where('identity_id', 1);
|
||||
})->get()->pluck('nickname', 'id');
|
||||
|
||||
$filter->equal('user_id', '渠道')->select($users);
|
||||
});
|
||||
|
||||
$filter->column(1 / 2, function ($filter) {
|
||||
@@ -100,10 +100,6 @@ class IndexController extends AdminController
|
||||
$grid->column('title', '活动名称');
|
||||
$grid->column('code', '活动编号');
|
||||
$grid->column('rule.code', '卡券规则');
|
||||
$grid->column('所属')->display(function () {
|
||||
return $this->user_id ? $this->user->nickname : '系统';
|
||||
});
|
||||
|
||||
$grid->column('类型')->display(function () {
|
||||
return $this->type_text;
|
||||
});
|
||||
@@ -111,6 +107,20 @@ class IndexController extends AdminController
|
||||
$grid->column('days', '延期(天)');
|
||||
$grid->column('rule.full', '满足金额');
|
||||
$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 () {
|
||||
return $this->type == Activity::TYPE_SCOPE ? $this->start_at->format('Y-m-d') : '---';
|
||||
});
|
||||
|
||||
@@ -54,25 +54,27 @@ class RuleController extends AdminController
|
||||
|
||||
$form->switch('status', '状态')->default(1);
|
||||
$form->saving(function (Form $form) {
|
||||
$code = $form->code;
|
||||
if ($form->code) {
|
||||
$code = $form->code;
|
||||
|
||||
$ticket = explode('-', $code);
|
||||
if (!is_array($ticket) || count($ticket) != 3) {
|
||||
$error = new MessageBag([
|
||||
'title' => '错误',
|
||||
'message' => '规则编号格式错误',
|
||||
]);
|
||||
$ticket = explode('-', $code);
|
||||
if (!is_array($ticket) || count($ticket) != 3) {
|
||||
$error = new MessageBag([
|
||||
'title' => '错误',
|
||||
'message' => '规则编号格式错误',
|
||||
]);
|
||||
|
||||
return back()->withInput()->with(compact('error'));
|
||||
return back()->withInput()->with(compact('error'));
|
||||
}
|
||||
|
||||
$full = $ticket[1]; //full100
|
||||
$price = $ticket[2];
|
||||
preg_match('/\d+/', $full, $match);
|
||||
|
||||
$form->full = $match[0];
|
||||
$form->take = $price;
|
||||
}
|
||||
|
||||
$full = $ticket[1]; //full100
|
||||
$price = $ticket[2];
|
||||
preg_match('/\d+/', $full, $match);
|
||||
|
||||
$form->full = $match[0];
|
||||
$form->take = $price;
|
||||
|
||||
});
|
||||
|
||||
return $form;
|
||||
|
||||
@@ -59,7 +59,6 @@ class IndexController extends AdminController
|
||||
->whereHas('identity', function ($query) {
|
||||
$query->where('identity_id', 1);
|
||||
})
|
||||
->where('type', 'pingan')
|
||||
->get()
|
||||
->pluck('nickname', 'id');
|
||||
|
||||
|
||||
@@ -149,9 +149,7 @@ class IndexController extends AdminController
|
||||
return $code->only(['name', 'code', 'profit']);
|
||||
});
|
||||
|
||||
$table = new Table(['名称', '规则项', '分润金额(元)'], $codes->toArray());
|
||||
|
||||
return trim($table->render(), '"');
|
||||
return new Table(['名称', '规则项', '分润金额(元)'], $codes->toArray());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -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: 银联接口
|
||||
* @Author: 玄尘
|
||||
@@ -86,10 +38,10 @@ class UnionPayController extends Controller
|
||||
unset($inputs['sign']);
|
||||
$action = new UnionPay($inputs, $sign);
|
||||
|
||||
// $action->addLog();
|
||||
$action->addLog();
|
||||
$action->start();
|
||||
|
||||
// $action->updateLog();
|
||||
$action->updateLog();
|
||||
|
||||
return $action->respond();
|
||||
|
||||
|
||||
@@ -39,7 +39,65 @@ return [
|
||||
'002101' => 'reversal',
|
||||
'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' => [
|
||||
'002025' => [
|
||||
"msg_type",
|
||||
@@ -101,6 +159,7 @@ return [
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"req_serial_no" => "查询流水号",
|
||||
"shop_no" => "门店号",
|
||||
@@ -124,7 +183,7 @@ return [
|
||||
"user_code_type" => "用户号类型",
|
||||
"dev_id" => "设备id",
|
||||
],
|
||||
"sign" => " 签名域",
|
||||
"sign" => "签名域",
|
||||
],
|
||||
'out' => [
|
||||
"msg_type" => "报文类型",
|
||||
|
||||
@@ -40,10 +40,10 @@ class UnionPay extends Init
|
||||
{
|
||||
//设置基础数据
|
||||
$this->getOutBaseData();
|
||||
|
||||
//校验数据
|
||||
$this->checkInData();
|
||||
try {
|
||||
//校验数据
|
||||
$this->checkInData();
|
||||
|
||||
//查询是否是幂等 就是重复查询
|
||||
$this->idempotent();
|
||||
//入库请求参数
|
||||
@@ -106,6 +106,9 @@ class UnionPay extends Init
|
||||
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()
|
||||
{
|
||||
if ($this->params['msg_txn_code'] == '002025' && (!isset($this->params['mkt_code']) || empty($this->params['mkt_code']))) {
|
||||
$this->msg_rsp_code = 9999;
|
||||
$this->msg_rsp_desc = '聚合营销码不能为空';
|
||||
//验签
|
||||
$res = $this->checkSign(false, false);
|
||||
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->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->save();
|
||||
|
||||
Reference in New Issue
Block a user