Files
pingan_new/app/Http/Controllers/TestController.php
2020-08-23 21:26:09 +08:00

237 lines
7.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)
{
$user_id = $request->user_id;
$data = $request->data;
$this->user = User::find(3);
$data = '5VehIrHTZsS1BY8V5VcKlhTN9hbutq4j+HIT2zRCbSqgPWvClQSxYSP7mn7PmHuiYQpj55NRC6w4397FfdVTq23wd4BOQ964giie/JForTjt0l7UaY23XzKnNjDSKiGqr7DAbd8P3SzJ75ZjKaqUu7UWu3PVylAeesGRbZgpQEF/XKwOW4XMaJGV2tIsowILZCtF+moqHg7yA6hI4vT7iYU3rTq9vk7kpcnfArLKPQ5dxH9FFIegdr7E1S8NVwpTZrxeQEmjDUsGrBcWe/Q9dRWXSlKF1Hdz2qCUCK94fu3gqvEVSYRllTCa5mwQhlYJLs2UTmWMSism7nsivySseSl1/JOvNH0lyvWaV1XDUMKG8oTC+kOPQKxFA3qp2xO9ohRhN0dkpML4JVgkMF1r6rv+rThYQuOL/rnsuY5Jdh4QdPWCItQ05lqI46s2yPyKROrLx7jQ3/+BOyEmP+Cj5W8/trEAVS1HczMj4Jnl3vrcY879ubokUcEatalAuKGM0uLNAqQF5XfHzgXam4coEMek8MjdbxW+Z9+eZFQp/P1ts7yN5qzpac6Y8CrqSMFJZf1vwowp+1peiEC5tCsXlHCsDLPS8Uh1LNnC3sag0XZu7jX5uVR9nxR2c/ibBJOAHcUO+NcjmzoN+dQOeBkb/aWj9B+9mW5RUQmfUk6O+Vwkb5ruZZbXsoJJULj4tHJv87+mVo30e0mBbaPD47+fTp1+qSJtLOOlLO2nEj1NNDBSBGLM4RxTDQ4ju2r6HY9YyMXsbNC2YB8zrXrDsUoB1WSuu5XcaWx8rzA0NpckzNbEIuv0+6fA69gXOhC9xcGGPyEBbko73XHr7W8MIDtWhGOG8kHf1cAMdjwVGS2OUJ6XKZnBMwIzY8cJn4Fi+jXRMFnt+7BxWLToNQsyOoHbYWypeM8FrAb4VQeaxGhBQUXUmHhmAp00jcGEe/ngxn1oVjq6G+pEq8CxBntvQ+GZ975sPaCqkYOjbuHa9Myd2tT6GWbczL/YcR4RRV96ByYYCEOBy01LsBNeo6SSpWYcK4eoLhc70v8s';
$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';
}
}