文件
mashangyoujiu/Application/Maiyatian/Controller/ExpressController.class.php

83 行
2.9 KiB
PHP
可执行文件

<?php
namespace Maiyatian\Controller;
use Think\Controller;
use Common\Lib\Maiyatian;
use Common\Lib\MaiyatianBase;
use Common\Lib\MaiyatianEvent;
use Common\Model\RetailMaiyatianOrderModel;
class ExpressController extends Controller
{
public function code()
{
$code = I('get.code');
$id = I('get.state/d', 0);
$result = (new Maiyatian($id))->token($code);
if (isset($result['token'])) {
(new \Common\Model\StoreModel)->where(['id' => $result['shop_id']])->save([
'maiyatian_token' => $result['token'],
'maiyatian_refresh_token' => $result['refresh_token'],
'maiyatian_expire_time' => $result['expire_time'],
'maiyatian_refresh_expire_time' => $result['refresh_expire_time'],
]);
}
redirect('https://www.maiyatian.com/');
}
public function oauth()
{
redirect((new Maiyatian(I('get.id/d', 0)))->oauth());
}
public function notification()
{
file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/notification.txt', file_get_contents('php://input') . PHP_EOL, FILE_APPEND);
$data = @json_decode(file_get_contents('php://input'), true);
$verify = (new MaiyatianBase)->sign($data, $data['command'], $data['token']);
(new \Common\Model\EventsModel)->add([
'event' => $data['command'],
'data' => json_encode($data, JSON_UNESCAPED_UNICODE),
'verify' => $verify['signature'] === $data['signature'] ? 1 : 0,
'create_time' => time(),
]);
if (!isset($data['signature']) || $verify['signature'] !== $data['signature']) {
$this->ajaxReturn([
'code' => 200,
'message' => 'signature'
]);
}
$event = preg_replace_callback('/\_([a-z])/', function ($match) {
return strtoupper($match[1]);
}, $data['command']);
$maiyatianEvent = new MaiyatianEvent();
if (method_exists($maiyatianEvent, $event)) {
$this->ajaxReturn($maiyatianEvent->$event(@json_decode($data['data'], true)));
}
}
public function sendOrder()
{
// $data = (new RetailMaiyatianOrderModel)->where(['id' => 4])->find();
// $data['order'] = @json_decode($data['order'], true);
// $data['order_customer'] = @json_decode($data['order_customer'], true);
// $maiyatian = new Maiyatian($data['order']['shop_id']);
// if ($maiyatian->orderCreated([
// 'order' => $data['order'],
// 'order_customer' => $data['order_customer'],
// 'update_time' => $data['update_time'],
// ])) {
// $this->ajaxReturn($maiyatian->orderConfirmed($data['order']['order_id']));
// }
$maiyatian = new Maiyatian(1);
var_dump($maiyatian->orderDone('202409049686000248'));
}
}