| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- namespace App\Http\Controllers\Api\v1;
- use App\Http\Controllers\Api\BaseController;
- use App\Services\NotifyService;
- use App\Services\RedisService;
- use App\Services\SiyuanService;
- use App\Services\WechatService;
- /**
- * 回调控制器
- * @author wesmiler
- * @since 2020/11/10
- * Class NotifyController
- * @package App\Http\Controllers
- */
- class NotifyController extends BaseController
- {
- /**
- * 构造函数
- * @author wesmiler
- * @since 2020/11/11
- * NotifyController constructor.
- */
- public function __construct()
- {
- parent::__construct();
- $this->service = new SiyuanService();
- }
- /**
- * 支付回调
- */
- public function pay($scene){
- if(empty($scene)){
- return message('参数错误回调失败', false);
- }
- $postStr = file_get_contents('php://input');
- $postData =$postStr? json_decode($postStr, true) : [];
- $outTradeNo = isset($postData['out_trade_no']) ? $postData['out_trade_no'] : '';
- if(empty($postData) || empty($outTradeNo)){
- //禁止引用外部xml实体
- libxml_disable_entity_loader(true);
- $postData = (array)(simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA));
- }
- $outTradeNo = isset($postData['out_trade_no']) ? $postData['out_trade_no'] : '';
- $taskNo = $outTradeNo ? $outTradeNo : date('YmdHis');
- RedisService::set('caches:payments:'.$scene.':result_'.$taskNo, ['result'=> $postData], 7200);
- if (WechatService::checkJsapiNotify($postData) === true) {
- switch($scene){
- case 'index': // 供灯订单
- return NotifyService::make()->notifyGongdeng($postData, $outTradeNo);
- case 'recharge': // 充值
- break;
- default:
- break;
- }
- }
- return message('回调失败', false);
- }
- }
|