Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

101 lines
2.9KB

  1. <?php
  2. namespace App\Http\API\SMBC;
  3. use App\Exceptions\ConfigException;
  4. use App\Kintone\Models\Customer;
  5. use Illuminate\Support\Carbon;
  6. use Illuminate\Support\Facades\Http;
  7. class SMBC
  8. {
  9. const CONDITION_ADDR5_FROM_MY_PAGE = "マイページからの申請";
  10. public static function poll(Carbon $from, Carbon $to)
  11. {
  12. $url = config('smbc.searchUrl');
  13. if (!$url) {
  14. throw new ConfigException("smbc.searchUrl", $url);
  15. }
  16. $password = config('smbc.searchPassword');
  17. if (!$password) {
  18. throw new ConfigException("smbc.searchPassword", $password);
  19. }
  20. $sendData = [
  21. 'version' => "213",
  22. 'shori_kbn' => "2001",
  23. 'shop_cd' => "7694156",
  24. 'syuno_co_cd' => "58763",
  25. 'shop_pwd' => $password,
  26. // 口座振替受付ステータス更新日時のFROM-TO検索条件
  27. 'kfr_utk_status_upd_date_from' => $from->format('Ymd'),
  28. 'kfr_utk_status_upd_time_from' => $from->format('His'),
  29. 'kfr_utk_status_upd_date_to' => $to->format('Ymd'),
  30. 'kfr_utk_status_upd_time_to' => $to->format('His'),
  31. // ソート指定
  32. 'sort_list' => "11", // 口座振替受付ステータス更新日時
  33. 'sort_jun' => "2" // 降順
  34. ];
  35. $res = Http::withHeaders([
  36. 'Content-Type' => 'application/x-www-form-urlencoded',
  37. 'Content-Encoding' => 'Shift_JIS'
  38. ])->asForm()->post(
  39. $url,
  40. $sendData
  41. );
  42. if ($res->failed()) {
  43. throw $res->toException();
  44. }
  45. return new PollResult($res->body());
  46. }
  47. public static function getRegisterStartParam(Customer $customer)
  48. {
  49. $password = config('smbc.systemPassword');
  50. if (!$password) {
  51. throw new ConfigException('smbc.systemPassword', $password);
  52. }
  53. $url = config('smbc.registerUrl');
  54. if (!$url) {
  55. throw new ConfigException('smbc.registerUrl', $url);
  56. }
  57. $param = [
  58. 'bill_no' => sprintf("%012d", $customer->customerCode),
  59. 'bill_name' => $customer->customerName,
  60. 'bill_kana' => mb_convert_kana($customer->customerNameKana, "ks"),
  61. 'version' => "130",
  62. 'bill_method' => "01",
  63. 'shop_cd' => "7694156",
  64. 'syuno_co_cd' => "58763",
  65. 'shop_pwd' => $password,
  66. 'shoporder_no' => "",
  67. 'koushin_kbn' => "1",
  68. 'shop_phon_hyoji_kbn' => "1",
  69. 'shop_mail_hyoji_kbn' => "1",
  70. 'kessai_id' => "0101",
  71. 'bill_adr_5' => self::CONDITION_ADDR5_FROM_MY_PAGE,
  72. ];
  73. $param['fs'] = hash('sha256', $param['shop_cd'] . $param['syuno_co_cd'] . $param['bill_no'] . $param['shoporder_no'] . $param['shop_pwd']);
  74. $data = [
  75. 'url' => $url,
  76. 'param' => $param,
  77. ];
  78. return $data;
  79. }
  80. }