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); } }