Browse Source

HTへの領収証通知にてunicodeエスケープされないように修正

SATE_RECEIPT-37 領収証作成通信
develop
sosuke.iwabuchi 2 years ago
parent
commit
2f315440a2
5 changed files with 90 additions and 7 deletions
  1. +18
    -0
      app/Http/Controllers/Test/HTReceiptIssuingTestController.php
  2. +34
    -0
      app/Http/Controllers/Test/TestController.php
  3. +7
    -0
      app/Providers/RouteServiceProvider.php
  4. +15
    -7
      app/Util/Custom/HelloTechno/API.php
  5. +16
    -0
      routes/test.php

+ 18
- 0
app/Http/Controllers/Test/HTReceiptIssuingTestController.php View File

@@ -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'
]
);
}
}

+ 34
- 0
app/Http/Controllers/Test/TestController.php View File

@@ -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(),
]);
}
}

+ 7
- 0
app/Providers/RouteServiceProvider.php View File

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



+ 15
- 7
app/Util/Custom/HelloTechno/API.php View File

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


+ 16
- 0
routes/test.php View File

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

Loading…
Cancel
Save