[新增] 配置文件
This commit is contained in:
@@ -2,330 +2,72 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Coupon;
|
||||
use App\Models\TestLog;
|
||||
use App\Models\User;
|
||||
use Illuminate\Queue\Jobs\Job;
|
||||
use XuanChen\Coupon\Action\pingan\Query;
|
||||
use XuanChen\Coupon\Action\ysd\YsdQuery;
|
||||
use Illuminate\Http\Request;
|
||||
use League\Flysystem\Sftp\SftpAdapter;
|
||||
use League\Flysystem\Filesystem;
|
||||
use XuanChen\UnionPay\Check;
|
||||
|
||||
class SkyxuController
|
||||
class SkyxuController extends Controller
|
||||
{
|
||||
|
||||
public $user;
|
||||
|
||||
public $jiemi;
|
||||
|
||||
public $query_coupon;
|
||||
|
||||
public $ticket;
|
||||
|
||||
public $type;
|
||||
|
||||
public function index()
|
||||
/**
|
||||
* Notes: 链接sftp
|
||||
* @Author: 玄尘
|
||||
* @Date : 2021/1/26 8:18
|
||||
*/
|
||||
public function sftp()
|
||||
{
|
||||
$list = Job::get();
|
||||
dd($list);
|
||||
Coupon::whereBetween('id', ['70091', '70513'])
|
||||
->orderBy('created_at', 'ASC')
|
||||
->chunk(100, function ($logs) {
|
||||
foreach ($logs as $log) {
|
||||
if (preg_match('/^YSD/', $log->redemptionCode, $matches)) {
|
||||
$type = Coupon::TYPE_YSD;
|
||||
} else {
|
||||
$type = Coupon::TYPE_PINGAN;
|
||||
$app = app('xuanchen.unionpay.check');
|
||||
$app->date = '20190722';
|
||||
$app->login();
|
||||
$app->hasFile();
|
||||
$app->start();
|
||||
dump($app->msg);
|
||||
|
||||
die();
|
||||
$path = '/home/wwwroot/pingan/upload/';
|
||||
$name = 'JYMX66007320190722.txt';
|
||||
$adapter = new SftpAdapter([
|
||||
'host' => '123.57.16.212',
|
||||
'port' => 22,
|
||||
'username' => 'root',
|
||||
'password' => 'Anetadmin1',
|
||||
'privateKey' => '',
|
||||
'passphrase' => '',
|
||||
'root' => $path,
|
||||
'timeout' => 10,
|
||||
'directoryPerm' => 0755,
|
||||
]);
|
||||
|
||||
$filesystem = new Filesystem($adapter);
|
||||
$lists = $filesystem->listContents();
|
||||
|
||||
$content = $filesystem->read($name);
|
||||
|
||||
$content = str_replace("\n", "br", $content);
|
||||
dump($content);
|
||||
|
||||
$content = explode("br", $content);
|
||||
|
||||
foreach ($content as $item) {
|
||||
$array = explode('|', $item);
|
||||
foreach ($array as $item) {
|
||||
echo $item . "<br>";
|
||||
}
|
||||
echo '----------------------------------------' . "<br>";
|
||||
}
|
||||
dd($content);
|
||||
}
|
||||
|
||||
$log->type = $type;
|
||||
$log->save();
|
||||
}
|
||||
});
|
||||
|
||||
dd();
|
||||
$count = TestLog::whereBetween('created_at', ['2020-11-10 11:06:40', '2020-11-11 10:42:26'])
|
||||
->where('type', 'freezecoupon')
|
||||
->where('back', '0')
|
||||
->orderBy('created_at', 'ASC')
|
||||
->count();
|
||||
dump($count);
|
||||
// $list = TestLog::whereBetween('created_at', ['2020-11-10 11:06:40', '2020-11-11 10:42:26'])
|
||||
// ->where('type', 'freezecoupon')
|
||||
// ->where('back', '0')
|
||||
// ->orderBy('created_at', 'ASC')
|
||||
// ->get();
|
||||
//
|
||||
//// $data = [];
|
||||
//// foreach ($list as $cou) {
|
||||
//// $data[] = $cou->in_source['jiemi']['redemptionCode'];
|
||||
//// }
|
||||
//// dump($data);
|
||||
|
||||
if ($count > 1) {
|
||||
try {
|
||||
TestLog::whereBetween('created_at', ['2020-11-10 11:06:40', '2020-11-11 10:42:26'])
|
||||
->where('type', 'freezecoupon')
|
||||
->where('back', '0')
|
||||
->orderBy('created_at', 'ASC')
|
||||
->chunk(100, function ($logs) {
|
||||
$su = $er = [];
|
||||
|
||||
foreach ($logs as $log) {
|
||||
|
||||
$this->jiemi = $log->in_source['jiemi'];
|
||||
$this->user = User::where('outlet_id', $this->jiemi['outletId'])->first();
|
||||
$this->getQuery();
|
||||
|
||||
if (is_string($this->queryData)) {
|
||||
$er[$this->jiemi['redemptionCode']] = $this->queryData;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($this->jiemi['redemptionCode'] == '157922465040') {
|
||||
dump($this->jiemi);
|
||||
dump($this->ticket);
|
||||
dump($this->queryData);
|
||||
}
|
||||
|
||||
$this->checkCode();
|
||||
if (is_string($this->ticket)) {
|
||||
$er[$this->jiemi['redemptionCode']] = $this->ticket;
|
||||
|
||||
$er[] = $this->jiemi['redemptionCode'];
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$status = isset($log->out_source['code']) ? 2 : 3;
|
||||
$exists = Coupon::where('status', $status)
|
||||
->where('redemptionCode', $this->jiemi['redemptionCode'])->exists();
|
||||
if ($exists && $status != 3) {
|
||||
$er[$this->jiemi['redemptionCode']] = [
|
||||
$log->out_source,
|
||||
];
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$couponData = [
|
||||
'user_id' => $this->user->parent->id,
|
||||
'type' => Coupon::TYPE_YSD,
|
||||
'outletId' => $this->user->outlet_id,
|
||||
'orderid' => '',
|
||||
'PaOutletId' => $this->queryData['PaOutletId'],
|
||||
'redemptionCode' => $this->jiemi['redemptionCode'],
|
||||
'thirdPartyGoodsId' => $this->queryData['thirdPartyGoodsId'],
|
||||
'couponName' => $this->queryData['couponName'],
|
||||
'price' => $this->ticket['price'],
|
||||
'total' => $this->jiemi['total'],
|
||||
'profit' => $this->ticket['profit'],
|
||||
'status' => $status,
|
||||
'remark' => isset($log->out_source['code']) ? '核销成功!' : $log->out_source[0],
|
||||
'startTime' => $this->queryData['startTime'],
|
||||
'endTime' => $this->queryData['endTime'],
|
||||
'created_at' => $log->created_at->format('Y-m-d H:i:s'),
|
||||
];
|
||||
|
||||
// dump($this->jiemi);
|
||||
// dump($this->ticket);
|
||||
// dump($couponData);
|
||||
// dd($this->queryData);
|
||||
|
||||
$coupon = Coupon::create($couponData);
|
||||
$coupon->profit();
|
||||
|
||||
$log->back = 1;
|
||||
$log->save();
|
||||
|
||||
}
|
||||
|
||||
if (count($er) > 1) {
|
||||
dump($er);
|
||||
}
|
||||
});
|
||||
} catch (\Exception $e) {
|
||||
dd($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getQuery()
|
||||
public function index(Request $request)
|
||||
{
|
||||
if (preg_match('/^YSD/', $this->jiemi['redemptionCode'], $matches)) {
|
||||
$this->query_coupon = (new YsdQuery)->setOutletId($this->jiemi['outletId'])
|
||||
->setCode($this->jiemi['redemptionCode'])
|
||||
->start();
|
||||
$this->type = 'ysd';
|
||||
} else {
|
||||
$this->query_coupon = (new Query)->setOutletId($this->jiemi['outletId'])
|
||||
->setCode($this->jiemi['redemptionCode'])
|
||||
->start();
|
||||
$this->type = 'pingan';
|
||||
if (method_exists($this, $request->action)) {
|
||||
|
||||
}
|
||||
|
||||
if ($this->type == 'ysd') {
|
||||
return $this->getYsdPro();
|
||||
return call_user_func_array([$this, $request->action], [$request->all()]);
|
||||
|
||||
} else {
|
||||
return $this->getPro();
|
||||
dd('未找到方法');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getYsdPro()
|
||||
{
|
||||
$rule_code = $this->query_coupon->activity->rule->code;
|
||||
$code = $this->user->parent->code->where('code', $rule_code)->first();
|
||||
|
||||
if (!$code) {
|
||||
$this->queryData = "核销失败,您没有权限使用此卡券优惠活动。";
|
||||
}
|
||||
|
||||
$ticket = explode('-', $rule_code);
|
||||
if (!is_array($ticket) || count($ticket) != 3) {
|
||||
$this->queryData = "核销失败,卡券规则格式不正确";
|
||||
}
|
||||
|
||||
$full = $ticket[1]; //full100
|
||||
$price = $ticket[2];
|
||||
// preg_match('/(\d{3}(\.\d+)?)/is', $full, $match);
|
||||
preg_match('/\d+/', $full, $match);
|
||||
|
||||
if (!is_array($match)) {
|
||||
$this->queryData = "核销失败,卡券规则格式不正确。";
|
||||
}
|
||||
|
||||
if (!is_numeric($this->jiemi['total'])) {
|
||||
$this->queryData = "核销失败,订单金额必须是数字";
|
||||
}
|
||||
|
||||
if ($match[0] > $this->jiemi['total']) {
|
||||
$this->queryData = '核销失败,订单金额不足。';
|
||||
}
|
||||
|
||||
$this->queryData = [
|
||||
'couponName' => $this->query_coupon->activity->title,
|
||||
'thirdPartyGoodsId' => $rule_code,
|
||||
'productId' => '',
|
||||
'PaOutletId' => '',
|
||||
'startTime' => $this->query_coupon->start_at->format('Y-m-d H:i:s'),
|
||||
'endTime' => $this->query_coupon->end_at->format('Y-m-d H:i:s'),
|
||||
];
|
||||
|
||||
return $this->ticket = [
|
||||
'total' => $match[0],
|
||||
'price' => $price,
|
||||
'profit' => $code->profit,
|
||||
];
|
||||
}
|
||||
|
||||
public function getPro()
|
||||
{
|
||||
|
||||
if (is_string($this->query_coupon)) {
|
||||
return $this->query_coupon;
|
||||
}
|
||||
|
||||
$profitOfferItemVersion = $this->query_coupon['profitOfferItemVersion'];
|
||||
|
||||
$productItemList = $this->query_coupon['productItemList'];
|
||||
|
||||
if (!is_array($productItemList) || !is_array($productItemList[0])) {
|
||||
$this->queryData = '核销失败,平安券数据有误,可能是未配置网点。';
|
||||
}
|
||||
|
||||
//循环查找
|
||||
$first = '';
|
||||
foreach ($productItemList as $key => $item) {
|
||||
$productId = $item['productId'];
|
||||
$thirdPartyGoodsId = $item['thirdPartyGoodsId'];
|
||||
$outletList = $item['outletList'];
|
||||
if (!is_array($outletList) || !is_array($outletList[0])) {
|
||||
$this->queryData = '核销失败,网点信息有误!请检查平安券配置信息。';
|
||||
break;
|
||||
}
|
||||
|
||||
$outletList = collect($outletList);
|
||||
//判断是新版还是旧版
|
||||
if ($profitOfferItemVersion) {
|
||||
//新版通过第三方查询
|
||||
$first = $outletList->firstWhere('thirdOutletNo', $this->user->outlet_id);
|
||||
|
||||
if ($first) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
//旧版通过平安网点查询
|
||||
$first = $outletList->firstWhere('outletNo', $this->user->PaOutletId);
|
||||
if ($first) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$first) {
|
||||
$this->queryData = '核销失败,未找到可用网点信息。';
|
||||
}
|
||||
|
||||
if (!$thirdPartyGoodsId) {
|
||||
$this->queryData = '核销失败,平安券编号规则有误。';
|
||||
}
|
||||
|
||||
if (!$productId) {
|
||||
$this->queryData = '核销失败,未查询到平安券商品id。';
|
||||
}
|
||||
|
||||
return $this->queryData = [
|
||||
'couponName' => $this->query_coupon['couponName'],
|
||||
'thirdPartyGoodsId' => $thirdPartyGoodsId,
|
||||
'productId' => $productId,
|
||||
'PaOutletId' => $first['outletNo'],
|
||||
'startTime' => $this->query_coupon['startTime'],
|
||||
'endTime' => $this->query_coupon['endTime'],
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
public function checkCode()
|
||||
{
|
||||
if ($this->type == 'ysd') {
|
||||
return $this->ticket;
|
||||
}
|
||||
|
||||
$code = $this->user->parent->code->where('code', $this->queryData['thirdPartyGoodsId'])->first();
|
||||
if (!$code) {
|
||||
$this->ticket = "核销失败,未找到此项平安券规则,请联系管理人员检查渠道配置。";
|
||||
}
|
||||
|
||||
$ticket = explode('-', $this->queryData['thirdPartyGoodsId']);
|
||||
|
||||
if (!is_array($ticket) || count($ticket) != 3) {
|
||||
$this->ticket = "核销失败,平安券规则格式不正确。";
|
||||
}
|
||||
|
||||
$full = $ticket[1]; //full100
|
||||
$price = $ticket[2];
|
||||
preg_match('/\d+/', $full, $result);
|
||||
|
||||
if (empty($result) || !is_array($result)) {
|
||||
$this->ticket = "核销失败,平安券规则格式不正确。";
|
||||
}
|
||||
|
||||
if (!is_numeric($this->jiemi['total'])) {
|
||||
$this->ticket = "核销失败,订单金额必须是数字";
|
||||
}
|
||||
if ($result[0] > $this->jiemi['total']) {
|
||||
$this->ticket = '核销失败,订单金额不足,平安券不可使用。';
|
||||
}
|
||||
|
||||
$this->ticket = [
|
||||
'total' => $result[0],
|
||||
'price' => $price,
|
||||
'profit' => $code->profit,
|
||||
];
|
||||
|
||||
return $this->ticket;
|
||||
}
|
||||
|
||||
}
|
||||
188
composer.lock
generated
188
composer.lock
generated
@@ -1735,6 +1735,10 @@
|
||||
"sftp",
|
||||
"storage"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/1.x"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://offset.earth/frankdejonge",
|
||||
@@ -1743,6 +1747,58 @@
|
||||
],
|
||||
"time": "2020-08-23T07:39:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem-sftp",
|
||||
"version": "1.0.22",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem-sftp.git",
|
||||
"reference": "cab59dd2277e02fe46f5f23195672a02ed49774d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-sftp/zipball/cab59dd2277e02fe46f5f23195672a02ed49774d",
|
||||
"reference": "cab59dd2277e02fe46f5f23195672a02ed49774d",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
||||
"preferred": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"require": {
|
||||
"league/flysystem": "~1.0",
|
||||
"php": ">=5.6.0",
|
||||
"phpseclib/phpseclib": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "0.9.*",
|
||||
"phpunit/phpunit": "^5.7.25"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Flysystem\\Sftp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Frank de Jonge",
|
||||
"email": "info@frenky.net"
|
||||
}
|
||||
],
|
||||
"description": "Flysystem adapter for SFTP",
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem-sftp/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem-sftp/tree/master"
|
||||
},
|
||||
"time": "2019-10-16T20:05:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/mime-type-detection",
|
||||
"version": "1.7.0",
|
||||
@@ -2190,6 +2246,121 @@
|
||||
],
|
||||
"time": "2020-07-20T17:29:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpseclib/phpseclib",
|
||||
"version": "2.0.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||
"reference": "136b9ca7eebef78be14abf90d65c5e57b6bc5d36"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/136b9ca7eebef78be14abf90d65c5e57b6bc5d36",
|
||||
"reference": "136b9ca7eebef78be14abf90d65c5e57b6bc5d36",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
||||
"preferred": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"phing/phing": "~2.7",
|
||||
"phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4",
|
||||
"squizlabs/php_codesniffer": "~2.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
|
||||
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
|
||||
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
|
||||
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"phpseclib/bootstrap.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"phpseclib\\": "phpseclib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jim Wigginton",
|
||||
"email": "terrafrost@php.net",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "Patrick Monnerat",
|
||||
"email": "pm@datasphere.ch",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "Andreas Fischer",
|
||||
"email": "bantu@phpbb.com",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "Hans-Jürgen Petrich",
|
||||
"email": "petrich@tronic-media.com",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "Graham Campbell",
|
||||
"email": "graham@alt-three.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
|
||||
"homepage": "http://phpseclib.sourceforge.net",
|
||||
"keywords": [
|
||||
"BigInteger",
|
||||
"aes",
|
||||
"asn.1",
|
||||
"asn1",
|
||||
"blowfish",
|
||||
"crypto",
|
||||
"cryptography",
|
||||
"encryption",
|
||||
"rsa",
|
||||
"security",
|
||||
"sftp",
|
||||
"signature",
|
||||
"signing",
|
||||
"ssh",
|
||||
"twofish",
|
||||
"x.509",
|
||||
"x509"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/phpseclib/phpseclib/issues",
|
||||
"source": "https://github.com/phpseclib/phpseclib/tree/2.0.30"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/terrafrost",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://www.patreon.com/phpseclib",
|
||||
"type": "patreon"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-12-17T05:42:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
"version": "1.0.0",
|
||||
@@ -5538,16 +5709,16 @@
|
||||
},
|
||||
{
|
||||
"name": "xuanchen/unionpay",
|
||||
"version": "2.6",
|
||||
"version": "2.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/xuanchen120/unionpay.git",
|
||||
"reference": "a2430888e99a9dd284c95788a4275b78d81356e9"
|
||||
"reference": "877342101be87fb82f92681578953733bf2f93f7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/xuanchen120/unionpay/zipball/a2430888e99a9dd284c95788a4275b78d81356e9",
|
||||
"reference": "a2430888e99a9dd284c95788a4275b78d81356e9",
|
||||
"url": "https://api.github.com/repos/xuanchen120/unionpay/zipball/877342101be87fb82f92681578953733bf2f93f7",
|
||||
"reference": "877342101be87fb82f92681578953733bf2f93f7",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@@ -5558,6 +5729,7 @@
|
||||
},
|
||||
"require": {
|
||||
"laravel/framework": "*",
|
||||
"league/flysystem-sftp": "^1.0 || ^2.0",
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -5584,7 +5756,11 @@
|
||||
}
|
||||
],
|
||||
"description": "第三方银联对接",
|
||||
"time": "2021-01-29T07:44:22+00:00"
|
||||
"support": {
|
||||
"issues": "https://github.com/xuanchen120/unionpay/issues",
|
||||
"source": "https://github.com/xuanchen120/unionpay/tree/2.7"
|
||||
},
|
||||
"time": "2021-01-31T06:20:57+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@@ -8162,5 +8338,5 @@
|
||||
"php": "^7.3|^8.0"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "1.1.0"
|
||||
"plugin-api-version": "2.0.0"
|
||||
}
|
||||
|
||||
54
config/pingan.php
Normal file
54
config/pingan.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/**
|
||||
* 平安接口参数
|
||||
*/
|
||||
'this_type' => 'dev',
|
||||
/**
|
||||
* 测试环境参数
|
||||
*/
|
||||
'test' => [
|
||||
'client_id' => 'P_YISHIDAI',
|
||||
'grant_type' => 'client_credentials',
|
||||
'client_secret' => 'zGg9e6J5',
|
||||
'userName' => '18804518018',
|
||||
'AES_CODE' => '61DA0376BEBCFE1F',
|
||||
'tokenUri' => 'https://test-api.pingan.com.cn:20443/oauth/oauth2/access_token',
|
||||
'Uri' => 'http://test-api.pingan.com.cn:20080/open/vassPartner/appsvr/property/api/new/',
|
||||
],
|
||||
|
||||
/**
|
||||
* 生产环境参数
|
||||
*/
|
||||
'dev' => [
|
||||
'client_id' => 'P_YISHIDAI',
|
||||
'grant_type' => 'client_credentials',
|
||||
'client_secret' => 'F3j5J7bx',
|
||||
'userName' => '13936166646',
|
||||
'AES_CODE' => '108DD27AB83252DB',
|
||||
'tokenUri' => 'http://api.pingan.com.cn/oauth/oauth2/access_token',
|
||||
'Uri' => 'http://api.pingan.com.cn/open/vassPartner/appsvr/property/api/new/',
|
||||
],
|
||||
'profit' => [
|
||||
'YSD-full100-10' => 0,
|
||||
'YSD-full100-25' => 15,
|
||||
'YSD-full100-50' => 40,
|
||||
'YSD-full200-100' => 80,
|
||||
],
|
||||
'coupon_status' => [
|
||||
1 => '使用中',
|
||||
2 => '已使用',
|
||||
3 => '已过期',
|
||||
4 => '已收回',
|
||||
5 => '退兑换',
|
||||
6 => '已冻结',
|
||||
7 => '未激活',
|
||||
],
|
||||
|
||||
'froms' => [
|
||||
'bsshop',//本时商城
|
||||
'bslive',//本时生活
|
||||
],
|
||||
|
||||
];
|
||||
687
config/unionpay.php
Normal file
687
config/unionpay.php
Normal file
@@ -0,0 +1,687 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
//环境变量
|
||||
'this_type' => 'test',
|
||||
//添加日志
|
||||
'log' => true,
|
||||
//对账单信息
|
||||
'check' => [
|
||||
'sftpadapter' => [
|
||||
'host' => 'localhost',//地址
|
||||
'port' => 22,//端口
|
||||
'username' => 'root', //账号
|
||||
'password' => 'Anetadmin1',//密码
|
||||
'privateKey' => '',
|
||||
'passphrase' => '',
|
||||
'root' => '/home/wwwroot/pingan/upload/',//路径
|
||||
'timeout' => 10,//超时时间
|
||||
'directoryPerm' => 0755,
|
||||
],
|
||||
'type' => 'JYMX',
|
||||
'file_type' => 'txt',
|
||||
],
|
||||
//获取微信侧的优惠券
|
||||
'unionpay_url' => [
|
||||
'test' => [
|
||||
'code' => 'http://dev.spserv.yxlm.chinaums.com:25941/spapigateway/v2/markting/sp/coupon/order/get',
|
||||
],
|
||||
'dev' => [
|
||||
'code' => 'https://mktos.chinaums.com/spapigateway/v2/markting/sp/coupon/order/get',
|
||||
],
|
||||
],
|
||||
//不进行sign校验
|
||||
'nosign' => [
|
||||
// '002025',//查询
|
||||
// '002100',//核销
|
||||
// '002101',//冲正
|
||||
// '002102',//撤销
|
||||
'openid',//获取openid 封装数据
|
||||
'code',//微信测获取优惠券
|
||||
],
|
||||
//分配的渠道号
|
||||
'msg_sender' => '660134',
|
||||
//打印在小票上,由活动标题、优惠金额、原始金额组合而成
|
||||
'pos_receipt' => '本时生活,优惠生活',
|
||||
//广告,用于打印在小票上
|
||||
'pos_ad' => '',
|
||||
//营销联盟广告,用于打印在小票上
|
||||
'pos_mkt_ad' => '本时生活,优惠生活',
|
||||
//银联渠道id
|
||||
'agent_id' => '299',
|
||||
//银联网点id
|
||||
'outlet_id' => '2009300919918',
|
||||
//用于银商与sp分润的金额(是佣金的一部分), 以分为单位
|
||||
'serv_chg' => 0,
|
||||
//佣金
|
||||
'commission' => 0,
|
||||
//证书
|
||||
'certificate' => [
|
||||
'dev' => [
|
||||
'ysd' => [
|
||||
'private' => storage_path('cert/unionpay/dev/ysd/private_rsa.pem'),
|
||||
'public' => storage_path('cert/unionpay/dev/ysd/public_rsa.pem'),
|
||||
],
|
||||
'union' => [
|
||||
'public' => storage_path('cert/unionpay/dev/union/public_rsa.pem'),
|
||||
],
|
||||
],
|
||||
|
||||
'test' => [
|
||||
'ysd' => [
|
||||
'private' => storage_path('cert/unionpay/test/ysd/private_rsa.pem'),
|
||||
'public' => storage_path('cert/unionpay/test/ysd/public_rsa.pem'),
|
||||
],
|
||||
'union' => [
|
||||
'public' => storage_path('cert/unionpay/test/union/public_rsa.pem'),
|
||||
],
|
||||
],
|
||||
],
|
||||
//接口类型
|
||||
'type' => [
|
||||
'002025' => '查询',
|
||||
'002100' => '交易',
|
||||
'002101' => '冲正',
|
||||
'002102' => '撤销',
|
||||
'openid' => '封装openid参数',
|
||||
'106040' => '领券',
|
||||
'012100' => '核销通知',
|
||||
'code' => '生活请求发券',
|
||||
],
|
||||
//日志类型对应
|
||||
'log_type' => [
|
||||
'002025' => 'query',
|
||||
'002100' => 'freezecoupon',
|
||||
'002101' => 'reversal',
|
||||
'002102' => 'annul',
|
||||
'openid' => 'openid',
|
||||
'106040' => 'getcode',
|
||||
'012100' => 'notify',
|
||||
],
|
||||
// 签名检查数据 没有为全数据
|
||||
'checksign' => [
|
||||
'default' => [
|
||||
'in' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
'sign_type',
|
||||
],
|
||||
'out' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_sys_sn',
|
||||
'msg_time',
|
||||
'msg_ver',
|
||||
'msg_rsp_code',
|
||||
'msg_rsp_desc',
|
||||
],
|
||||
],
|
||||
'106040' => [
|
||||
'in' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
'sign_type',
|
||||
],
|
||||
'out' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_sys_sn',
|
||||
'msg_time',
|
||||
'msg_ver',
|
||||
'msg_rsp_code',
|
||||
'msg_rsp_desc',
|
||||
],
|
||||
],
|
||||
'012100' => [
|
||||
'in' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
],
|
||||
'out' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
'msg_rsp_code',
|
||||
'msg_rsp_desc',
|
||||
],
|
||||
],
|
||||
],
|
||||
//需要校验的数据
|
||||
'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",
|
||||
],
|
||||
//封装openid参数
|
||||
'openid' => [
|
||||
"msg_type",
|
||||
"msg_txn_code",
|
||||
"msg_crrltn_id",
|
||||
"msg_sender",
|
||||
"callback_type",
|
||||
"callback_url",
|
||||
],
|
||||
//本时生活领券
|
||||
'code' => [
|
||||
"msg_type",
|
||||
"msg_txn_code",
|
||||
"msg_crrltn_id",
|
||||
"msg_sender",
|
||||
"issue_user_id",
|
||||
"event_no",
|
||||
"mobile",
|
||||
],
|
||||
|
||||
//本时生活领券
|
||||
'106040' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
// 'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
'sp_chnl_no',
|
||||
'sp_order_no',
|
||||
'order_date',
|
||||
'event_no',
|
||||
'issue_user_id',
|
||||
],
|
||||
//回调核销信息 校验数据项目
|
||||
'012100' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
'mchnt_no',
|
||||
'term_no',
|
||||
'shop_no',
|
||||
'req_serial_no',
|
||||
'coupon_no',
|
||||
'coupon_type',
|
||||
'enc_card_no',
|
||||
'acq_term_sn',
|
||||
'refer_no',
|
||||
'sett_date',
|
||||
'txn_date',
|
||||
'txn_time',
|
||||
'orig_amt',
|
||||
'discount_amt',
|
||||
'pay_amt',
|
||||
'pay_mode',
|
||||
'event_no',
|
||||
],
|
||||
],
|
||||
//入库基础数据
|
||||
'regular' => [
|
||||
'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",//自己添加的基础数据
|
||||
],
|
||||
'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",//自己添加的基础数据
|
||||
],
|
||||
'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",//自己添加的基础数据
|
||||
],
|
||||
//封装获取openid数据
|
||||
'openid' => [
|
||||
"msg_type",
|
||||
"msg_txn_code",
|
||||
"msg_crrltn_id",
|
||||
"msg_sender",
|
||||
],
|
||||
//本时生活领券
|
||||
'code' => [
|
||||
"msg_type",
|
||||
"msg_txn_code",
|
||||
"msg_crrltn_id",
|
||||
"msg_sender",
|
||||
],
|
||||
//去联盟领券
|
||||
'106040' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
// 'msg_flg',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
],
|
||||
//回调核销信息
|
||||
'012100' => [
|
||||
'msg_type',
|
||||
'msg_txn_code',
|
||||
'msg_crrltn_id',
|
||||
'msg_sender',
|
||||
'msg_time',
|
||||
'msg_sys_sn',
|
||||
'msg_ver',
|
||||
'req_serial_no',
|
||||
'sett_date',
|
||||
],
|
||||
],
|
||||
'fields' => [
|
||||
//聚合营销优惠查询接口
|
||||
'002025' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "报文流水号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"req_serial_no" => "查询流水号",
|
||||
"shop_no" => "门店号",
|
||||
"term_no" => "受理终端号",
|
||||
"service_code" => "受理方式",
|
||||
"voucher_no" => "受理凭证号",
|
||||
"mkt_code" => "聚合营销码",
|
||||
"mkt_mode" => "聚合营销类型",
|
||||
"embedded_mchnt_no" => "发起渠道商户号",
|
||||
"currency_code" => "货币代码",
|
||||
"amount" => "消费金额",
|
||||
"avl_amt" => "可优惠金额",
|
||||
"term_sp_chnl_no" => "终端指定SP渠道号",
|
||||
"func_code" => "功能码",
|
||||
"times" => "次数",
|
||||
"pay_mode" => "支付方式",
|
||||
//用户附加信息
|
||||
"user_ext_info" => [
|
||||
"mobile_no" => "手机号",
|
||||
"user_code" => "用户号",
|
||||
"user_code_type" => "用户号类型",
|
||||
"dev_id" => "设备id",
|
||||
],
|
||||
"sign" => "签名域",
|
||||
],
|
||||
'out' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "报文流水号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_rsp_code" => "响应码",
|
||||
"msg_rsp_desc" => "响应码描述",
|
||||
"discount" => "折扣金额",
|
||||
"actual_amt" => "折后应收金额",
|
||||
"pos_display" => "POS显示",
|
||||
"pos_receipt" => "POS小票",
|
||||
"pos_ad" => "POS广告",
|
||||
"pos_mkt_ad" => "Pos_营销联盟广告",
|
||||
"sign" => "签名域",
|
||||
],
|
||||
],
|
||||
//销账交易接口
|
||||
'002100' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"shop_no" => "门店号",
|
||||
"term_no" => "终端号",
|
||||
"req_serial_no" => "销券流水号",
|
||||
"orig_req_serial_no" => "原查询流水号",
|
||||
"enc_card_no" => "加密卡号",
|
||||
"part_card_no" => "部分卡号",
|
||||
"acq_term_sn" => "受理终端流水号",
|
||||
"refer_no" => "检索参考号",
|
||||
"sett_date" => "清算日期",
|
||||
"txn_date" => "交易日期",
|
||||
"txn_time" => "交易时间",
|
||||
"orig_amt" => "原始金额",
|
||||
"discount_amt" => "优惠的金额",
|
||||
"pay_amt" => "支付金额",
|
||||
"pay_mode" => "支付方式",
|
||||
"order_no" => "订单号",
|
||||
"trans_crrltn_no" => "交易关联流水号",
|
||||
"equity_no" => "权益号",
|
||||
"card_no" => "全卡号",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
'out' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"msg_rsp_code" => "响应码",
|
||||
"msg_rsp_desc" => "响应码描述",
|
||||
"orig_amt" => "原始金额",
|
||||
"discount_amt" => "折扣金额",
|
||||
"pay_amt" => "支付金额",
|
||||
"serv_chg" => "服务费",
|
||||
"commission" => "佣金",
|
||||
"ad" => "广告",
|
||||
"pos_receipt" => "POS优惠",
|
||||
"coupon_no" => "凭证号",
|
||||
"coupon_type" => "凭证类型",
|
||||
"sp_biz_code" => "SP统计码",
|
||||
"charge_code" => "计费码",
|
||||
"pos_event_title" => "SP活动主题",
|
||||
"sp_contact" => "SP联系电话",
|
||||
"sp_name" => "SP名称",
|
||||
"event_no" => "活动号",
|
||||
"td_code" => "二维码",
|
||||
"memo" => "附言",
|
||||
"mkt_sp_chnl_no" => "营销渠道号",
|
||||
"point_amt" => "积分抵扣金额",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
],
|
||||
//销账冲正通知接口
|
||||
'002101' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"shop_no" => "门店号",
|
||||
"term_no" => "终端号",
|
||||
"req_serial_no" => "冲正流水号",
|
||||
"orig_req_serial_no" => "原始销账流水号",
|
||||
"trans_crrltn_no" => "交易关联流水号",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
'out' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"msg_rsp_code" => "响应码",
|
||||
"msg_rsp_desc" => "响应码描述",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
],
|
||||
'002102' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"shop_no" => "门店号",
|
||||
"term_no" => "终端号",
|
||||
"req_serial_no" => "撤销流水号",
|
||||
"orig_req_serial_no" => "原始销账流水号",
|
||||
"trans_crrltn_no" => "交易关联流水号",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
'out' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"msg_rsp_code" => "响应码",
|
||||
"msg_rsp_desc" => "响应码描述",
|
||||
"ad" => "广告",
|
||||
"td_code" => "二维码",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
],
|
||||
|
||||
'openid' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_sender" => "报文发送方",
|
||||
"callback_type" => "回调类型",
|
||||
"callback_url" => "回调地址",
|
||||
],
|
||||
'out' => [
|
||||
"msg_sender" => "报文类型",
|
||||
"nonce_str" => "随机码",
|
||||
"timestamp" => "时间戳",
|
||||
"auth_scope" => "授权类型",
|
||||
"callback_type" => "回调类型",
|
||||
"callback_url" => "回调地址",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
],
|
||||
|
||||
'code' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_sender" => "报文发送方",
|
||||
"issue_user_id" => "发券平台渠道用户id",//领取微信活动的券码送微信的openid
|
||||
"event_no" => "活动号",
|
||||
"mobile" => "手机号",
|
||||
],
|
||||
'out' => [
|
||||
"code" => "优惠券",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
],
|
||||
//去联盟领券
|
||||
'106040' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"shop_no" => "门店号",
|
||||
"term_no" => "终端号",
|
||||
"req_serial_no" => "撤销流水号",
|
||||
"orig_req_serial_no" => "原始销账流水号",
|
||||
"trans_crrltn_no" => "交易关联流水号",
|
||||
'sp_chnl_no' => "渠道方",
|
||||
'sp_order_no' => "第三方订单号",
|
||||
'order_date' => "订单日期",
|
||||
'event_no' => "活动号",
|
||||
'issue_user_id' => "发券平台渠道用户id",
|
||||
],
|
||||
'out' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"msg_rsp_code" => "响应码",
|
||||
"msg_rsp_desc" => "响应码描述",
|
||||
"sign" => "签名数据",
|
||||
],
|
||||
],
|
||||
|
||||
//回调核销信息
|
||||
'012100' => [
|
||||
'in' => [
|
||||
"msg_type" => "报文类型",
|
||||
"msg_txn_code" => "交易代码",
|
||||
"msg_crrltn_id" => "消息关联号",
|
||||
"msg_flg" => "报文请求应答标志",
|
||||
"msg_sender" => "报文发送方",
|
||||
"msg_time" => "报文日期",
|
||||
"msg_sys_sn" => "平台流水号",
|
||||
"msg_ver" => "报文版本号",
|
||||
"mchnt_no" => "商户号",
|
||||
"term_no" => "终端号",
|
||||
"shop_no" => "门店号",
|
||||
"req_serial_no" => "销券流水号",
|
||||
"coupon_no" => "凭证号",
|
||||
"coupon_type" => "凭证类型",
|
||||
"enc_card_no" => "加密卡号",
|
||||
"acq_term_sn" => "受理终端流水号",
|
||||
"refer_no" => "检索参考号",
|
||||
"sett_date" => "清算日期",
|
||||
"txn_date" => "交易日期",
|
||||
"txn_time" => "交易时间",
|
||||
"orig_amt" => "原始金额",
|
||||
"discount_amt" => "优惠的金额",
|
||||
"pay_amt" => "支付金额",
|
||||
"pay_mode" => "支付方式",
|
||||
"event_no" => "活动号",
|
||||
"trans_crrltn_no" => "交易关联流水号",
|
||||
"equity_no" => "权益号",
|
||||
"order_no" => "订单号",
|
||||
"point" => "使用的积分数量",
|
||||
"point_amt" => "积分抵扣金额",
|
||||
"point_account_no" => "积分账户号",
|
||||
"mkt_uuid" => "联盟码申请流水号",
|
||||
"custom_info" => "第三方自定义域",
|
||||
],
|
||||
],
|
||||
|
||||
],
|
||||
];
|
||||
23
config/wo.php
Normal file
23
config/wo.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'merchantCert' => storage_path('cert/wo/309700710354582.cer'),
|
||||
'private' => storage_path('cert/wo/private_rsa.pem'),
|
||||
'public' => storage_path('cert/wo/public_rsa.pem'),
|
||||
'merchant_id' => '309700710354582',
|
||||
'charset' => '00-GBK',
|
||||
'version' => '1.0',
|
||||
'signType' => 'RSA',
|
||||
'channelType' => 'wbsh',
|
||||
'baseUri' => 'http://123.125.97.251:8880/mpc/wbsh',
|
||||
'ticketState' => [
|
||||
'A' => 'ticketBuyback',
|
||||
'U' => 'ticketInvalid',
|
||||
],
|
||||
'ticketStateText' => [
|
||||
'A' => '已领用',
|
||||
'U' => '已使用',
|
||||
'E' => '已过期',
|
||||
'H' => '已冻结',
|
||||
],
|
||||
];
|
||||
27
config/xuanchen_coupon.php
Normal file
27
config/xuanchen_coupon.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'coupon_model' => \App\Models\Coupon::class,
|
||||
'rules' => [
|
||||
'ysd' => [
|
||||
// 'pattern' => '/^YSD\d{12}/',
|
||||
'pattern' => '/^YSD/',
|
||||
'model' => \XuanChen\Coupon\Action\YsdAction::class,
|
||||
],
|
||||
'unionpay' => [
|
||||
// 'pattern' => '/^YSD\d{12}/',
|
||||
'pattern' => '/^66406/',
|
||||
'model' => \XuanChen\Coupon\Action\YsdAction::class,
|
||||
],
|
||||
'pingan' => [
|
||||
'pattern' => '/^\d{12}$/',
|
||||
'model' => \XuanChen\Coupon\Action\PinganAction::class,
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
'froms' => [
|
||||
'bsshop',//本时商城
|
||||
'bslive',//本时生活
|
||||
],
|
||||
];
|
||||
@@ -1,12 +1,17 @@
|
||||
<?php
|
||||
|
||||
Route::get('/', 'IndexController@index')->name('index');
|
||||
Route::get('/test', 'TestController@index')->name('test');
|
||||
Route::get('/test/grant', 'TestController@grant')->name('test.grant');
|
||||
Route::get('/test/checkcoupon', 'TestController@checkcoupon')->name('test.checkcoupon');
|
||||
Route::get('/test/query', 'TestController@query')->name('test.query');
|
||||
Route::get('/test/destroy', 'TestController@destroy')->name('test.destroy');
|
||||
Route::get('/test/getsign', 'TestController@getSign')->name('test.getsign');
|
||||
use App\Http\Controllers\CouponController;
|
||||
use App\Http\Controllers\SkyxuController;
|
||||
use App\Http\Controllers\TestController;
|
||||
use App\Http\Controllers\IndexController;
|
||||
|
||||
Route::get('/skyxu', 'SkyxuController@index')->name('skyxu');
|
||||
Route::get('/coupon', 'CouponController@index')->name('coupon');
|
||||
Route::get('/', [IndexController::class, 'index'])->name('index');
|
||||
Route::get('/test', [TestController::class, 'index'])->name('test');
|
||||
Route::get('/test/grant', [TestController::class, 'grant'])->name('test.grant');
|
||||
Route::get('/test/checkcoupon', [TestController::class, 'checkcoupon'])->name('test.checkcoupon');
|
||||
Route::get('/test/query', [TestController::class, 'query'])->name('test.query');
|
||||
Route::get('/test/destroy', [TestController::class, 'destroy'])->name('test.destroy');
|
||||
Route::get('/test/getsign', [TestController::class, 'getSign'])->name('test.getsign');
|
||||
|
||||
Route::get('/skyxu', [SkyxuController::class, 'index'])->name('skyxu');
|
||||
Route::get('/coupon', [CouponController::class, 'index'])->name('coupon');
|
||||
|
||||
Reference in New Issue
Block a user