| @@ -0,0 +1,18 @@ | |||||
| <?php | |||||
| namespace App\Http\Controllers\Test; | |||||
| use Illuminate\Http\Request; | |||||
| class HTReceiptIssuingTestController extends TestController | |||||
| { | |||||
| function service(Request $request) | |||||
| { | |||||
| return response()->json( | |||||
| [ | |||||
| 'result_code' => 'SUCCESS' | |||||
| ] | |||||
| ); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,34 @@ | |||||
| <?php | |||||
| namespace App\Http\Controllers\Test; | |||||
| use Auth; | |||||
| use Illuminate\Http\Request; | |||||
| use Illuminate\Routing\Controller as BaseController; | |||||
| use Log; | |||||
| use Str; | |||||
| abstract class TestController extends BaseController | |||||
| { | |||||
| public function entry(Request $request) | |||||
| { | |||||
| $this->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(), | |||||
| ]); | |||||
| } | |||||
| } | |||||
| @@ -2,6 +2,7 @@ | |||||
| namespace App\Providers; | namespace App\Providers; | ||||
| use App\Codes\EnvironmentName; | |||||
| use Illuminate\Cache\RateLimiting\Limit; | use Illuminate\Cache\RateLimiting\Limit; | ||||
| use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; | use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; | ||||
| use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||
| @@ -33,6 +34,12 @@ class RouteServiceProvider extends ServiceProvider | |||||
| Route::middleware('web') | Route::middleware('web') | ||||
| ->group(base_path('routes/web.php')); | ->group(base_path('routes/web.php')); | ||||
| if (app()->environment([EnvironmentName::LOCAL->value])) { | |||||
| Route::prefix('test') | |||||
| ->group(base_path('routes/test.php')); | |||||
| } | |||||
| }); | }); | ||||
| } | } | ||||
| @@ -69,11 +69,6 @@ class API | |||||
| ) { | ) { | ||||
| $param = static::makeReceiptIssuingOrderParams($order, $customOrder, $tax, $eventName, $eventDatetime); | $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); | return static::post(static::getReceiptIssuingOrderUrl(), $param); | ||||
| } | } | ||||
| @@ -101,7 +96,17 @@ class API | |||||
| } | } | ||||
| private static function getReceiptIssuingOrderUrl() | 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); | return implode('/', $condition); | ||||
| } | } | ||||
| @@ -191,7 +196,10 @@ class API | |||||
| private static function post(string $url, array $param = []) | private static function post(string $url, array $param = []) | ||||
| { | { | ||||
| try { | try { | ||||
| $res = Http::post($url, $param); | |||||
| // そのままポストしてしまうとunicodeエスケープして送られてしまい | |||||
| // HT側で変換の手間がかかるため、withBodyを使って素のボディ部を設定する | |||||
| $res = Http::withBody(json_encode($param, JSON_UNESCAPED_UNICODE)) | |||||
| ->post($url); | |||||
| if ($res->failed()) { | if ($res->failed()) { | ||||
| throw $res->throw(); | throw $res->throw(); | ||||
| } | } | ||||
| @@ -0,0 +1,16 @@ | |||||
| <?php | |||||
| /* | |||||
| |-------------------------------------------------------------------------- | |||||
| | API Routes | |||||
| |-------------------------------------------------------------------------- | |||||
| | | |||||
| | Here is where you can register API routes for your application. These | |||||
| | routes are loaded by the RouteServiceProvider and all of them will | |||||
| | be assigned to the "api" middleware group. Make something great! | |||||
| | | |||||
| */ | |||||
| use App\Util\RouteHelper; | |||||
| RouteHelper::post('/HT/receipt-issuing', App\Http\Controllers\Test\HTReceiptIssuingTestController::class); | |||||