diff --git a/app/Http/Controllers/Test/HTReceiptIssuingTestController.php b/app/Http/Controllers/Test/HTReceiptIssuingTestController.php new file mode 100644 index 0000000..c669fe1 --- /dev/null +++ b/app/Http/Controllers/Test/HTReceiptIssuingTestController.php @@ -0,0 +1,18 @@ +json( + + [ + 'result_code' => 'SUCCESS' + ] + ); + } +} diff --git a/app/Http/Controllers/Test/TestController.php b/app/Http/Controllers/Test/TestController.php new file mode 100644 index 0000000..c85cebb --- /dev/null +++ b/app/Http/Controllers/Test/TestController.php @@ -0,0 +1,34 @@ +setLogContext($request); + + + logger("★★★★★REQUEST TEST", ["request_data" => $request->toArray()]); + + return $this->service($request); + } + + abstract function service(Request $request); + + protected function setLogContext(Request $request) + { + Log::withContext([ + '__requestUuid__' => strval(Str::uuid()), + '__userId__' => Auth::id(), + '__path__' => $request->path(), + ]); + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index e40d0fa..8b74a5d 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; +use App\Codes\EnvironmentName; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Http\Request; @@ -33,6 +34,12 @@ class RouteServiceProvider extends ServiceProvider Route::middleware('web') ->group(base_path('routes/web.php')); + + + if (app()->environment([EnvironmentName::LOCAL->value])) { + Route::prefix('test') + ->group(base_path('routes/test.php')); + } }); } diff --git a/app/Util/Custom/HelloTechno/API.php b/app/Util/Custom/HelloTechno/API.php index c116df2..4a81682 100644 --- a/app/Util/Custom/HelloTechno/API.php +++ b/app/Util/Custom/HelloTechno/API.php @@ -69,11 +69,6 @@ class API ) { $param = static::makeReceiptIssuingOrderParams($order, $customOrder, $tax, $eventName, $eventDatetime); - if (app()->environment([EnvironmentName::LOCAL->value])) { - logger("HT通知 ローカル環境のため送信しない", ['SEND' => $param]); - return []; - } - return static::post(static::getReceiptIssuingOrderUrl(), $param); } @@ -101,7 +96,17 @@ class API } private static function getReceiptIssuingOrderUrl() { - $condition = [static::getHost(), static::URL_RECEIPT_ISSUING_ORDER]; + + $condition = []; + + if (app()->environment([EnvironmentName::LOCAL->value])) { + // テスト環境用 + $condition = ['http://localhost/test/HT/receipt-issuing']; + } else { + // 正規ルート + $condition = [static::getHost(), static::URL_RECEIPT_ISSUING_ORDER]; + } + return implode('/', $condition); } @@ -191,7 +196,10 @@ class API private static function post(string $url, array $param = []) { try { - $res = Http::post($url, $param); + // そのままポストしてしまうとunicodeエスケープして送られてしまい + // HT側で変換の手間がかかるため、withBodyを使って素のボディ部を設定する + $res = Http::withBody(json_encode($param, JSON_UNESCAPED_UNICODE)) + ->post($url); if ($res->failed()) { throw $res->throw(); } diff --git a/routes/test.php b/routes/test.php new file mode 100644 index 0000000..368203a --- /dev/null +++ b/routes/test.php @@ -0,0 +1,16 @@ +