environment([EnvironmentName::LOCAL->value])) { logger("HT通知 ローカル環境のため送信しない", ['SEND' => $param]); return []; } return static::post(static::getReceiptIssuingOrderUrl(), $param); } private static function getHost(): string { return config(static::CONFIG_KEY_API_HOST, "http://localhost"); } private static function getCustomersUrl() { $condition = [static::getHost(), static::URL_CUSTOMERS]; return implode('/', $condition); } private static function getParkingsUrl() { $condition = [static::getHost(), static::URL_PARKINGS]; return implode('/', $condition); } private static function getAdjustDataUrl() { $condition = [static::getHost(), static::URL_ADJUST_DATA]; return implode('/', $condition); } private static function getReceiptIssuingOrderUrl() { $condition = [static::getHost(), static::URL_RECEIPT_ISSUING_ORDER]; return implode('/', $condition); } public static function makeReceiptIssuingOrderParams( ReceiptIssuingOrder $order, ReceiptIssuingHTParkingCustomOrder $customOrder, ReceiptIssuingOrderTax $tax, string $eventName, Carbon $eventDatetime ): array { $param = []; $param['id'] = $order->id; $param['event_name'] = $eventName; $param['event_datetime'] = static::formatDateTimeStr($eventDatetime); $param['customer_code'] = $customOrder->customer_code; $param['parking_management_code'] = $customOrder->parking_management_code; $param['adjust_seq_no'] = $customOrder->adjust_seq_no; $param['order_datetime'] = static::formatDateTimeStr($order->order_datetime); $param['status_done'] = $order->status_done; $param['status_sms_send_datetime'] = static::formatDateTimeStr($order->status_sms_send_datetime); $param['status_first_access_datetime'] = static::formatDateTimeStr($order->status_first_access_datetime); $param['status_receipt_confirm_datetime'] = static::formatDateTimeStr($order->status_receipt_confirm_datetime); $param['status_order_mail_datetime'] = static::formatDateTimeStr($order->status_order_mail_datetime); $param['status_mail_download_datetime'] = static::formatDateTimeStr($order->status_mail_download_datetime); $param['status_mail_post_date'] = static::formatDateStr($order->status_mail_post_date); $param['status_receipt_download_datetime'] = static::formatDateTimeStr($order->status_receipt_download_datetime); $param['status_receipt_email_send_order_datetime'] = static::formatDateTimeStr($order->status_receipt_email_send_order_datetime); $param['status_receipt_email_send_datetime'] = static::formatDateTimeStr($order->status_receipt_email_send_datetime); $param['sms_phone_number'] = $order->sms_phone_number; $param['sms_send_success'] = $order->sms_send_success; $param['receipt_no'] = $order->receipt_no; $param['receipt_use_date'] = static::formatDateStr($order->receipt_use_date); $param['receipt_shop_name'] = $order->receipt_shop_name; $param['receipt_issuer'] = $order->receipt_issuer; $param['receipt_purpose'] = $order->receipt_purpose; $param['receipt_name'] = $order->receipt_name; $param['receipt_invoice_no'] = $order->receipt_invoice_no; $param['receipt_amount'] = $order->receipt_amount; $param['tax_rate'] = $tax->tax_rate; $param['tax_amount'] = $tax->tax_amount; $param['email'] = $order->email; $param['mail_pref_code'] = $order->mail_pref_code !== null ? $order->mail_pref_code->value : null; $param['mail_zip_code'] = $order->mail_zip_code; $param['mail_address1'] = $order->mail_address1; $param['mail_address2'] = $order->mail_address2; $param['mail_address3'] = $order->mail_address3; $param['mail_name'] = $order->mail_name; $param['seq_number'] = $order->seq_number; $param['updated_at'] = static::formatDateStr($order->updated_at); return $param; } private static function formatDateStr(?Carbon $date): ?string { if ($date === null) return null; return $date->format('Y-m-d'); } private static function formatDateTimeStr(?Carbon $date): ?string { if ($date === null) return null; return $date->format('Y-m-d H:i:s'); } private static function get(string $url, array $query = []) { try { $res = Http::get($url, $query); if ($res->failed()) { throw $res->throw(); } $data = $res->json(); if (data_get($data, static::RESULT_CODE) !== static::RESULT_CODE_SUCCESS) { Log::error("HT RESPONSE ERROR"); Log::error($data); throw new AppCommonException('HT API 失敗'); } return data_get($data, static::FIELD_DATA, []); } catch (Exception $e) { Log::error("HelloTechno API エラー URL:${url}]"); throw $e; } } private static function post(string $url, array $param = []) { try { $res = Http::post($url, $param); if ($res->failed()) { throw $res->throw(); } $data = $res->json(); if (data_get($data, static::RESULT_CODE) !== static::RESULT_CODE_SUCCESS) { Log::error("HT RESPONSE ERROR"); Log::error($data); throw new AppCommonException('HT API 失敗'); } return data_get($data, static::FIELD_DATA, []); } catch (Exception $e) { Log::error("HelloTechno API エラー URL:${url}]"); throw $e; } } }