您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

101 行
2.7KB

  1. <?php
  2. namespace App\Http\Controllers\Web\BanckCheck;
  3. use App\Exceptions\AppCommonException;
  4. use App\Http\Controllers\Web\WebController;
  5. use App\Kintone\Models\BankCheckResult;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Http\Response;
  8. use Illuminate\Support\Carbon;
  9. class PaymentInfoController extends WebController
  10. {
  11. public function name(): string
  12. {
  13. return "バンクチェック 決済結果";
  14. }
  15. public function description(): string
  16. {
  17. return "バンクチェック 決済結果";
  18. }
  19. public function __construct(protected PaymentInfoParam $param)
  20. {
  21. parent::__construct();
  22. }
  23. protected function run(Request $request): Response
  24. {
  25. $param = $this->param;
  26. logger("リクエスト受信 bankcheck");
  27. if ($param->token !== config('custom.bank-check.token')) {
  28. abort(403);
  29. }
  30. if ($param->ap === "BANK") {
  31. $this->handleEntry();
  32. } else if ($param->ap === "BAN_SAL") {
  33. $this->handlePayment();
  34. }
  35. return response()->view('bank-check.ok');
  36. }
  37. private function handleEntry()
  38. {
  39. $param = $this->param;
  40. $model = new BankCheckResult();
  41. $model->customerCode = $param->customerCode;
  42. $model->entryRecordNo = $param->entryRecordNo;
  43. $model->shopOrderNo = $param->cod;
  44. $model->paymentNo = $param->gid;
  45. $model->orderCode = $param->god;
  46. $model->entryResult = $param->rst;
  47. $model->entryErrorCode = $param->ec;
  48. $model->paymentPlanAmount = intval($param->am);
  49. $model->paymentExpiresDate = Carbon::createFromFormat("Ymd", $param->exp);
  50. $requestArr = request()->toArray();
  51. unset($requestArr["token"]);
  52. $model->dataEntry = json_encode($requestArr);
  53. $model->save();
  54. }
  55. private function handlePayment()
  56. {
  57. $param = $this->param;
  58. $model = BankCheckResult::getAccess()
  59. ->first(BankCheckResult::getQuery()->where(
  60. BankCheckResult::FIELD_SHOP_ORDER_NO,
  61. $param->cod
  62. ));
  63. if ($model === null) {
  64. throw new AppCommonException(sprintf(
  65. "存在しない店舗側オーダー番号:[%s]",
  66. $param->cod
  67. ));
  68. }
  69. $model->paymentResult = $param->rst;
  70. $model->paymentErrorCode = $param->ec;
  71. $model->paymentAmount = intval($param->nk);
  72. $model->paymentDate = Carbon::createFromFormat("Ymd", $param->nkd);
  73. $requestArr = request()->toArray();
  74. unset($requestArr["token"]);
  75. $model->dataResult = json_encode($requestArr);
  76. $model->save();
  77. }
  78. }