| @@ -12,8 +12,22 @@ | ||
| 12 | 12 | * ルミーズ決済モジュール |
| 13 | 13 | */ |
| 14 | 14 | class REMISE_SETTLEMENT { |
| 15 | 15 | /** |
| 16 | + * 収納情報通知の送信元IP許可リスト(本番環境) | |
| 17 | + * | |
| 18 | + * @var array | |
| 19 | + */ | |
| 20 | + const ACTING_NOTICE_IPADDRS_PUBLIC = array( '210.160.253.128/26', '3.115.50.231', '3.113.156.98' ); | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * 収納情報通知の送信元IP許可リスト(sandbox環境) | |
| 24 | + * | |
| 25 | + * @var array | |
| 26 | + */ | |
| 27 | + const ACTING_NOTICE_IPADDRS_TEST = array( '183.177.132.57/29', '3.114.65.232' ); | |
| 28 | + | |
| 29 | + /** | |
| 16 | 30 | * Instance of this class. |
| 17 | 31 | * |
| 18 | 32 | * @var object |
| 19 | 33 | */ |
| @@ -150,15 +164,15 @@ | ||
| 150 | 164 | 'M603' => array( |
| 151 | 165 | 'label' => 'd払い', |
| 152 | 166 | ), |
| 153 | 167 | 'M611' => array( |
| 154 | - 'label' => 'auかんたん決済', | |
| 168 | + 'label' => 'au PAY', | |
| 155 | 169 | ), |
| 156 | 170 | 'M612' => array( |
| 157 | - 'label' => 'auかんたん決済', | |
| 171 | + 'label' => 'au PAY', | |
| 158 | 172 | ), |
| 159 | 173 | 'M613' => array( |
| 160 | - 'label' => 'auかんたん決済', | |
| 174 | + 'label' => 'au PAY', | |
| 161 | 175 | ), |
| 162 | 176 | 'M621' => array( |
| 163 | 177 | 'label' => 'ソフトバンクまとめて支払い', |
| 164 | 178 | ), |
| @@ -1284,8 +1298,36 @@ | ||
| 1284 | 1298 | default: |
| 1285 | 1299 | $html = ''; |
| 1286 | 1300 | } |
| 1287 | 1301 | return $html; |
| 1302 | + } | |
| 1303 | + | |
| 1304 | + /** | |
| 1305 | + * 収納情報通知の送信元IPを検証する | |
| 1306 | + * | |
| 1307 | + * 許可IP以外からのリクエストはエラーログを残して処理を終了する | |
| 1308 | + * 入金状態を変更するサーバー間通知でのみ呼び出すこと | |
| 1309 | + * ブラウザ戻りを伴う結果戻りでは呼び出さない | |
| 1310 | + * | |
| 1311 | + * @param array $data Notification data. | |
| 1312 | + * @return void | |
| 1313 | + */ | |
| 1314 | + public function acting_notice_ip_guard( $data ) { | |
| 1315 | + $acting_opts = $this->get_acting_settings(); | |
| 1316 | + $allowed_ips = ( isset( $acting_opts['conv_pc_ope'] ) && 'public' === $acting_opts['conv_pc_ope'] ) ? self::ACTING_NOTICE_IPADDRS_PUBLIC : self::ACTING_NOTICE_IPADDRS_TEST; | |
| 1317 | + $remote_addr = ( isset( $_SERVER['REMOTE_ADDR'] ) ) ? wp_unslash( $_SERVER['REMOTE_ADDR'] ) : ''; | |
| 1318 | + if ( usces_acting_notice_ip_allowed( $remote_addr, $allowed_ips ) ) { | |
| 1319 | + return; | |
| 1320 | + } | |
| 1321 | + $log = array( | |
| 1322 | + 'acting' => 'remise_conv', | |
| 1323 | + 'key' => ( isset( $data['S_TORIHIKI_NO'] ) ) ? $data['S_TORIHIKI_NO'] : '', | |
| 1324 | + 'result' => 'IP ADDRESS NOT ALLOWED: ' . $remote_addr, | |
| 1325 | + 'data' => $data, | |
| 1326 | + ); | |
| 1327 | + usces_save_order_acting_error( $log ); | |
| 1328 | + usces_log( 'remise conv denied ip : ' . $remote_addr, 'acting_transaction.log' ); | |
| 1329 | + die( 'error0' ); | |
| 1288 | 1330 | } |
| 1289 | 1331 | |
| 1290 | 1332 | /** |
| 1291 | 1333 | * 決済オプション取得 |