* @version : HUOSDK 8.0 */ namespace huolib\queue\job; use huosdk\h5ios\core\controller\ApplePay; use think\Log; use think\queue\Job; class ApplePayFire extends Fire { /** * fire方法是消息队列默认调用的方法 * * @param Job $job 当前的任务对象 * @param array|mixed $data 发布任务时自定义的数据 */ public function fire(Job $job, $data) { $_is_job_done = $this->doJob($data); if ($_is_job_done) { //如果任务执行成功, 记得删除任务 $job->delete(); } else { if ($job->attempts() > 3) { /* 记录队列值 */ Log::write( "func=".__FUNCTION__."&class=".__CLASS__.'&queue='.$job->getQueue().'&name='.$job->getName() .'&data='.json_encode($data).'&error', LOG::QUEUE ); $job->delete(); } } } /** * 根据消息中的数据进行实际的业务处理 * * @param array $data 发布任务时自定义的数据 * * @return bool 任务执行的结果 */ public function doJob($data) { if (empty($data)) { return false; } if (empty($data['trans_id']) || empty($data['receipt_data']) || !isset($data['order_id']) || !isset($data['is_sandbox'])) { return false; } return (new ApplePay())->checkAppleOrder( $data['order_id'], $data['trans_id'], $data['receipt_data'], $data['is_sandbox'], $data['idfv'], $data['apple_id'] ); } }