param; logger("リクエスト受信 creditcard result", ["param" => $request->all()]); try { $info = CreditcardAutoPaymentInfo::getAccess()->first( CreditcardAutoPaymentInfo::getQuery() ->where(CreditcardAutoPaymentInfo::FIELD_AUTO_PAYMENT_NO, $param->acid) ->where(CreditcardAutoPaymentInfo::FIELD_SHOP_ORDER_NO, $param->cod) ); } catch (ModelNotFoundException $e) { Log::error(sprintf( "自動課金情報が存在しないため、クレジットカードの決済結果保存不可 自動課金番号<%s> 店舗側オーダー番号<%s>", $param->acid, $param->cod )); throw $e; } $this->クレジット支払結果登録($info); return response()->view('robot-payment.creditcard.ok'); } private function クレジット支払結果登録(CreditcardAutoPaymentInfo $info) { $param = $this->param; $result = new CreditcardAutoPaymentResult(); $result->creditcardAutoPaymentNo = $info->autoPaymentNo; $result->paymentNo = $param->gid; $result->paymentDate = DateUtil::now(); $result->paymentResult = $this->get決済結果($param->rst); $result->errorCode = $param->ec; $result->paymentAmount = $info->paymentAmount; // 機密な情報をリクエストデータから除外して登録する $requestArr = request()->toArray(); unset($requestArr["token"]); unset($requestArr["id"]); unset($requestArr["pa"]); $result->dataResult = json_encode( $requestArr, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT ); $result->save(); } private function get決済結果(string $paymentResultCode): string { if ($paymentResultCode === "1") { return "決済成功"; } if ($paymentResultCode === "2") { return "決済失敗"; } if ($paymentResultCode === "3") { return "リトライ課金失敗"; } if ($paymentResultCode === "4") { return "ユーザー様による課金停止"; } if ($paymentResultCode === "5") { return "お試し期間中にリトライ課金課金2回失敗"; } throw new Exception("不正な決済結果コード " . $paymentResultCode); } }