235 lines
6.0 KiB
PHP
235 lines
6.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Api\Controllers\ApiResponse;
|
|
use SelfCoupon;
|
|
use App\Models\User;
|
|
use GuzzleHttp\Client;
|
|
use Illuminate\Http\Request;
|
|
use XuanChen\Coupon\Coupon;
|
|
|
|
// use Wo;
|
|
|
|
class TestController
|
|
{
|
|
|
|
use ApiResponse;
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$this->user = User::find(3);
|
|
|
|
$data = 'Q7dhxBxcPnSGbnhDtHGgTNPYJfcRf0IcpOBSr+jjRF5SfLe0RLoiAMXYynZ9bb/dnon8MMw/o/AgO/yIIfhxo45Ya9yXOAEAogwR6Ti9nnM=';
|
|
$iv = substr($this->user->des3key, 0, 8);
|
|
$ret = openssl_decrypt($data, 'DES-EDE3-CBC', $this->user->des3key, 0, $iv);
|
|
if (false === $ret) {
|
|
return openssl_error_string();
|
|
}
|
|
dd($ret);
|
|
dd();
|
|
$this->user = User::find(215);
|
|
$ret = [
|
|
'redemptionCode' => '951951858070',
|
|
'total' => 5,
|
|
'outletId' => '2006151433887',
|
|
];
|
|
|
|
return $this->success($ret);
|
|
dd(phpinfo());
|
|
dd();
|
|
$num = 100;
|
|
|
|
for ($i = 1; $i <= $num; $i++) {
|
|
$data = [
|
|
'outletId' => '2004020935777',
|
|
'activityId' => 'ysd20200740',
|
|
'mobile' => '15663876870',
|
|
];
|
|
|
|
$this->user = User::find(3);
|
|
|
|
$data = $this->jiami($data);
|
|
|
|
$url = 'http://pac.ysd-bs.com/api/V1/user/grant';
|
|
$res = $this->http($data, $url);
|
|
|
|
// if (isset($res['data'])) {
|
|
// $jiemi = $this->jiemi($res['data']);
|
|
// dump($jiemi);
|
|
// }
|
|
|
|
}
|
|
|
|
dump($this->getElapsedTime());
|
|
dump($this->getMemoryUsage());
|
|
|
|
}
|
|
|
|
/**
|
|
* Notes: 发券
|
|
* @Author: 玄尘
|
|
* @Date : 2020/6/29 13:57
|
|
*/
|
|
public function grant(Request $request)
|
|
{
|
|
$this->user = User::find(3);
|
|
|
|
$data = $this->jiami($request->all());
|
|
|
|
$url = 'http://pac.ysd-bs.com/api/V1/user/grant';
|
|
$res = $this->http($data, $url);
|
|
|
|
return $res;
|
|
|
|
// dump($this->getElapsedTime());
|
|
// dump($this->getMemoryUsage());
|
|
//
|
|
// dd($res);
|
|
}
|
|
|
|
//查询
|
|
public function query(Request $request)
|
|
{
|
|
$this->user = User::find(3);
|
|
|
|
$redemptionCode = $request->redemptionCode;
|
|
$outletId = $request->outletId;
|
|
|
|
$data = $this->jiami($request->all());
|
|
|
|
$url = 'http://pac.ysd-bs.com/api/V1/user/query';
|
|
$res = $this->http($data, $url);
|
|
|
|
return $res;
|
|
if (isset($res['data'])) {
|
|
$jiemi = $this->jiemi($res['data']);
|
|
dump($jiemi);
|
|
}
|
|
|
|
dump($this->getElapsedTime());
|
|
dump($this->getMemoryUsage());
|
|
|
|
dump($res);
|
|
|
|
}
|
|
|
|
//卡券作废
|
|
public function destroy(Request $request)
|
|
{
|
|
$this->user = User::find(3);
|
|
|
|
$redemptionCode = $request->redemptionCode;
|
|
$data = $this->jiami($request->all());
|
|
|
|
$url = 'http://pac.ysd-bs.com/api/V1/user/destroy';
|
|
$res = $this->http($data, $url);
|
|
|
|
dump($this->getElapsedTime());
|
|
dump($this->getMemoryUsage());
|
|
if (isset($res['data'])) {
|
|
$jiemi = $this->jiemi($res['data']);
|
|
dump($jiemi);
|
|
}
|
|
dump($res);
|
|
|
|
}
|
|
|
|
/**
|
|
* Notes: 核销
|
|
* @Author: 玄尘
|
|
* @Date : 2020/6/29 14:01
|
|
*/
|
|
public function checkcoupon(Request $request)
|
|
{
|
|
$user_id = $request->user_id;
|
|
|
|
$this->user = User::find($user_id);
|
|
|
|
$data = $this->jiami([
|
|
'redemptionCode' => $request->redemptionCode,
|
|
'total' => $request->total,
|
|
'outletId' => $request->outletId,
|
|
'orderid' => $request->orderid,
|
|
]);
|
|
|
|
$url = 'http://pac.ysd-bs.com/api/V1/user/freezecoupon';
|
|
$res = $this->http($data, $url);
|
|
|
|
return $res;
|
|
|
|
$redemptionCode = $request->redemptionCode;
|
|
$total = $request->total;
|
|
$outletId = $request->outletId;
|
|
$orderid = $request->orderid ?? '';
|
|
$res = Coupon::Redemption($this->user, $redemptionCode, $total, $outletId, $orderid);
|
|
|
|
if (is_string($res)) {
|
|
return $this->error($res);
|
|
}
|
|
|
|
return $this->success('核销成功');
|
|
}
|
|
|
|
public function http($data, $url)
|
|
{
|
|
$client = new Client();
|
|
$response = $client->request('POST', $url, ['form_params' => $data, 'http_errors' => false]);
|
|
|
|
$body = $response->getBody();
|
|
$content = $body->getContents();
|
|
$result = json_decode($content, true);
|
|
|
|
return $result;
|
|
}
|
|
|
|
public function jiami($ret)
|
|
{
|
|
$jsonData = json_encode($ret); //数据JSON化
|
|
$ascdata = $this->keyasc($jsonData); //加密
|
|
$addcode = sprintf("%08d", mt_rand(0, 99999999)); //随机code 验证签名用
|
|
$sign = $this->keysign($ascdata, $addcode);
|
|
|
|
$data = [
|
|
'server_id' => $this->user->server_id,
|
|
'key' => $this->user->server_key,
|
|
'addcode' => $addcode,
|
|
'sign' => $sign,
|
|
'data' => $ascdata,
|
|
];
|
|
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* 解密
|
|
* @param <type> $value
|
|
* @return <type>
|
|
*/
|
|
public function jiemi($value)
|
|
{
|
|
$iv = substr($this->user->des3key, 0, 8);
|
|
$ret = openssl_decrypt($value, 'DES - EDE3 - CBC', $this->user->des3key, 0, $iv);
|
|
if (false === $ret) {
|
|
return openssl_error_string();
|
|
}
|
|
|
|
return $ret;
|
|
}
|
|
|
|
function getMemoryUsage($precision = 2)
|
|
{
|
|
$size = memory_get_usage(true);
|
|
|
|
$unit = ['b', 'kb', 'mb', 'gb', 'tb', 'pb'];
|
|
|
|
return round($size / pow(1024, ($i = floor(log($size, 1024)))), $precision) . ' ' . $unit[$i];
|
|
}
|
|
|
|
function getElapsedTime(int $decimals = 2)
|
|
{
|
|
return number_format(microtime(true) - request()->server('REQUEST_TIME_FLOAT'), $decimals) . ' s';
|
|
}
|
|
|
|
}
|