param; logger("リクエスト受信 creditcard", ["param" => $request->all()]); // 認証チェック // 初回の決済結果はトークン付で送信されるのでチェックする if ($param->token !== config('custom.creditcard.token')) { abort(403); } $customer = Customer::findByCustomerCode($param->customerCode); $customer->paymentMethod = "クレジットカード"; $model = new CreditcardAutoPaymentInfo(); $model->customerCode = $param->customerCode; $model->autoPaymentNo = $param->acid; $model->shopOrderNo = $param->cod; $model->paymentInterval = $this->getPaymentInterval(); $model->paymentAmount = $this->getPaymentAmount(); // 機密な情報をリクエストデータから除外して登録する $requestArr = request()->toArray(); unset($requestArr["token"]); unset($requestArr["id"]); unset($requestArr["pa"]); $model->dataResult = json_encode( $requestArr, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT ); $model->save(); $customer->save(); return response()->view('robot-payment.creditcard.ok'); } private function getPaymentAmount(): int { $param = $this->param; return intval($param->acam) + intval($param->actx) + intval($param->acsf); } private function getPaymentInterval(): string { $code = $this->param->actp; if ($code === "2") { return "毎週課金"; } if ($code === "3") { return "隔週課金"; } if ($code === "4") { return "毎月課金"; } if ($code === "5") { return "隔月課金"; } if ($code === "6") { return "3ヶ月課金"; } if ($code === "7") { return "6ヶ月課金"; } if ($code === "8") { return "1年課金"; } return ""; } }