service = new SiyuanService(); } /** * 支付回调 */ public function pay($scene){ $postData = request()->all(); RedisService::set('caches:payments:'.$scene.':result'.date('YmdHis'), ['result'=> request()->all()], 7200); $postData = isset($postData['resource'])? $postData['resource'] : []; if(empty($scene) || empty($postData)){ return NotifyService::make()->rebackMsg('回调参数错误'); } // 解密 $ciphertext = isset($postData['ciphertext'])? $postData['ciphertext'] : ''; if(empty($ciphertext)){ return NotifyService::make()->rebackMsg('解密数据不存在'); } $postData = WechatService::decryptNotifyData($postData); $outTradeNo = isset($postData['out_trade_no']) ? $postData['out_trade_no'] : ''; if(empty($postData) || empty($outTradeNo)){ return NotifyService::make()->rebackMsg('获取解密数据失败'); } RedisService::set('caches:payments:'.$scene.':result_'.$outTradeNo, ['result'=> $postData], 7200); if (WechatService::checkJsapiNotify($postData) === true) { switch($scene){ case 'index': // 供灯订单 return NotifyService::make()->notifyGongdeng($postData, $outTradeNo); case 'recharge': // 充值 break; default: break; } } return NotifyService::make()->rebackMsg('回调失败'); } }