레이아웃 scripts[] 에만 있던 원격 스크립트 차단 게이트가 다른 주입 경로에는 없어, 저장측(SafeLayoutExpressions·NoExternalUrls)이 외부 URL 저장을 422 로 막아도 런타임 디스패치 한 번으로 임의 원격 코드가 로드됐다. 저장 검증이 통째로 무의미해지는 상태였고 오류도 경고도 남지 않았다. 판정식을 support/scriptSrcPolicy.ts 로 분리해 런타임 SSoT 를 하나로 두고, loadScript 액션 · 확장 핸들러 재로드 · 편집기 프리뷰 · 편집기 자산 매니페스트 · G7Core.asset.loadScript · PG 플러그인 SDK 주입이 모두 그것을 경유하게 했다. 사본을 두지 않은 이유는 차집합이 그대로 우회로가 되기 때문이다. - 게이트는 캐시 검사보다 앞에 둔다 (뒤에 두면 이미 로드된 미신뢰 스크립트가 캐시 히트로 통과한다) - NoExternalUrls 순회를 9키로 확대 — 번들 레이아웃 601개 사전 스캔으로 정당한 외부 URL 0건을 확인한 뒤 넓혔다 (저장 회귀 없음) - callExternal 은 생성자를 참조 동일성으로 거부하고(별칭 전역 포함), 프로토타입 경로 세그먼트를 읽기·매핑 키 양쪽에서 차단한다 - PG SDK 는 서비스 SDK 라 자체 호스팅이 불가능하므로 manifest 선언 + 주입 직전 호스트 확인이 게이트다. tosspayments SDK URL 은 확장자가 없어 정적 검사에 걸리지 않아 그 런타임 확인이 유일한 게이트다 - 함께 드러난 결함: 동시 loadScript 가 로드 전에 완료 처리되던 문제, 확장 재로드에서 script 기존재가 CSS 까지 건너뛰던 문제, loadCSS 의 in-flight 미공유
160 lines
9.5 KiB
JSON
160 lines
9.5 KiB
JSON
{
|
||
"editor": {
|
||
"data_source": {
|
||
"nicepay_easy_pay_config": "簡易決済設定",
|
||
"nicepay_escrow": "エスクロー",
|
||
"nicepay_status": "決済ステータス",
|
||
"nicepay_test_mode_status": "テストモード状態",
|
||
"nicepay_test_map": "テスト決済マップ",
|
||
"settings": "決済設定",
|
||
"vbank_info": "仮想口座情報"
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "NicePayments設定",
|
||
"description": "NicePayments PG連動設定",
|
||
"test_mode": "テストモード",
|
||
"test_mode_hint": "テストモードでも実際のカード承認・出金通知が発生する場合があり、テストアカウント決済は当日23時30分頃一括自動キャンセルされます。",
|
||
"section_test_keys": "テストキー設定",
|
||
"test_mid": "テスト加盟店ID(MID)",
|
||
"test_mid_hint": "NicePayments公用テストMIDです。テスト専用であり、変更する必要はありません。",
|
||
"test_merchant_key": "テスト加盟店キー",
|
||
"test_merchant_key_hint": "NicePayments公用テストキーです。テスト専用であり、変更する必要はありません。",
|
||
"section_live_keys": "ライブキー設定",
|
||
"live_mid": "ライブ加盟店ID(MID)",
|
||
"live_mid_hint": "NicePayments店舗管理者 > 加盟店情報 > KEY管理から確認。「SR」を除いた残りだけを入力してください。",
|
||
"live_mid_example": "例)店舗IDがSRpaytestmの場合、paytestmのみを入力 → 完成:SRpaytestm",
|
||
"live_merchant_key": "ライブ加盟店キー",
|
||
"live_merchant_key_hint": "外部に公開されないよう注意してください。",
|
||
"live_mode_warning_title": "ライブモード有効化",
|
||
"live_mode_warning_body": "現在、実際の決済が処理されています。ライブMIDと加盟店キーが正しく設定されていることを確認してください。",
|
||
"section_vbank_notify": "仮想口座入金通知URL",
|
||
"vbank_notify_hint": "仮想口座使用時は、以下のURLをNicePayments加盟店管理者 → 加盟店情報設定に登録してください。入金が完了するとこのアドレスに自動通知されます。",
|
||
"vbank_notify_copied": "URLがクリップボードにコピーされました。",
|
||
"copy": "コピー",
|
||
"section_redirect": "リダイレクトURL",
|
||
"redirect_success_url": "決済成功リダイレクトURL",
|
||
"redirect_success_url_hint": "{shopBase}はストア住所設定に従って自動的に入力されます。完全URL(https://...)を直接入力することもできます。{orderId}は実際の注文番号に自動置換されます。",
|
||
"redirect_fail_url": "決済失敗リダイレクトURL",
|
||
"redirect_fail_url_hint": "{shopBase}はストア住所設定に従って自動的に入力されます。完全URLを直接入力することもできます。エラー情報はクエリパラメーターとして自動追加されます。",
|
||
"use_escrow": "エスクロー決済使用",
|
||
"use_escrow_hint": "実物商品販売時に購入者保護のためのエスクロー決済を有効化します。エスクロー決済後の配送登録が必要です。",
|
||
"section_easy_pay": "簡易決済設定",
|
||
"section_easy_pay_hint": "使用する簡易決済サービスを選択してください。NicePayments加盟店契約が完了したサービスのみ有効化してください。",
|
||
"easy_pay_naverpay": "NaverPay",
|
||
"easy_pay_naverpay_hint": "テストモードでも使用可能",
|
||
"easy_pay_kakaopay": "KakaoPay",
|
||
"easy_pay_samsungpay": "Samsung Pay",
|
||
"easy_pay_applepay": "Apple Pay",
|
||
"easy_pay_applepay_hint": "SafariおよびAppleデバイスでのみ使用可能",
|
||
"easy_pay_payco": "PAYCO",
|
||
"easy_pay_skpay": "11pay(SKペイ)",
|
||
"easy_pay_ssgpay": "SSGペイ",
|
||
"easy_pay_lpay": "L.pay",
|
||
"easy_pay_allow_with_other_pg": "他のPGと使用可能",
|
||
"easy_pay_allow_with_other_pg_hint": "有効化すると、他のPG企業が基本決済手段として設定されている場合でも、チェックアウトページにNicePay簡易決済ボタンが表示されます。"
|
||
},
|
||
"admin": {
|
||
"transaction_query_title": "TID取引照会",
|
||
"transaction_query_description": "NicePayments取引ID(TID)で決済ステータスを直接照会します。",
|
||
"transaction_tid_label": "取引ID(TID)",
|
||
"transaction_query_button": "照会",
|
||
"transaction_query_error": "照会失敗",
|
||
"transaction_result_title": "照会結果",
|
||
"result_tid": "取引ID(TID)",
|
||
"result_order_id": "注文番号(Moid)",
|
||
"result_amount": "決済金額",
|
||
"result_status": "決済ステータス",
|
||
"result_method": "決済手段",
|
||
"result_auth_code": "承認番号",
|
||
"result_auth_date": "承認日時",
|
||
"result_result_code": "結果コード",
|
||
"order_verify_title": "NicePayments決済検証",
|
||
"order_verify_description": "NicePaymentsサーバーからリアルタイムで決済ステータスを照会します。",
|
||
"order_verify_button": "決済照会",
|
||
"order_verify_error": "照会失敗",
|
||
"pay_status_approved": "承認",
|
||
"pay_status_cancelled": "キャンセル",
|
||
"pay_status_unknown": "未確認",
|
||
"vbank_noti_title": "仮想口座入金通知履歴",
|
||
"vbank_noti_description": "NicePay入金通知受信記録(自動蓄積)",
|
||
"vbank_noti_count": "通知回数",
|
||
"vbank_noti_first_at": "初回通知受信",
|
||
"vbank_noti_last_at": "最終通知受信",
|
||
"vbank_noti_deposited_at": "入金完了通知時刻",
|
||
"vbank_noti_cancelled_at": "入金キャンセル通知時刻",
|
||
"vbank_noti_depositor": "入金者名(最終)",
|
||
"vbank_noti_history": "通知履歴(時間順)",
|
||
"vbank_noti_type_deposited": "入金完了",
|
||
"vbank_noti_type_cancelled": "入金キャンセル",
|
||
"vbank_noti_type_other": "その他の通知",
|
||
"vbank_noti_query_button": "通知履歴照会",
|
||
"vbank_noti_loading": "閲覧中...",
|
||
"vbank_noti_not_loaded": "閲覧ボタンをクリックすると、NicePay入金通知履歴を確認できます。",
|
||
"vbank_noti_empty": "受信された入金通知がありません。",
|
||
"vbank_noti_load_error": "入金通知履歴閲覧中にエラーが発生しました。",
|
||
"escrow_badge": "エスクロー",
|
||
"result_escrow": "エスクロー有無",
|
||
"escrow_yes": "エスクロー決済",
|
||
"escrow_no": "通常決済",
|
||
"escrow_payment_notice": "エスクロー決済です。配送登録後、購入者の購入確定が必要です。",
|
||
"escrow_delivery_title": "エスクロー配送登録",
|
||
"escrow_delivery_company": "配送業者名",
|
||
"escrow_delivery_company_placeholder": "例:CJ大韓通運",
|
||
"escrow_tracking_number": "送り状番号",
|
||
"escrow_tracking_number_placeholder": "送り状番号を入力してください",
|
||
"escrow_buyer_address": "配送先住所",
|
||
"escrow_register_name": "登録者名",
|
||
"escrow_register_button": "配送登録",
|
||
"escrow_register_success": "エスクロー配送が登録されました。",
|
||
"escrow_register_error": "エスクロー配送登録に失敗しました。",
|
||
"test_mode_badge": "テスト決済",
|
||
"test_mode_order_notice": "テスト決済として処理された注文です。実際のカード承認・出金通知が発生する可能性がありますが、NicePaymentsテストアカウント決済は当日23時30分頃一括自動キャンセルされます。配送前に運営決済の有無をご確認ください。",
|
||
"test_mode_settings_warning_plugin": "NicePayments",
|
||
"test_mode_settings_warning_title": "(注意)NicePayments決済設定が現在テスト決済になっています。",
|
||
"test_mode_settings_warning_body": "テスト決済では実際の決済は発生しません。ショップ運営中の場合は必ず実決済に設定して運営してください。",
|
||
"test_mode_settings_warning_action": "実決済に設定",
|
||
"test_mode_orders_in_list": "テスト決済注文を含む"
|
||
},
|
||
"easy_pay": {
|
||
"section_title": "簡便決済"
|
||
},
|
||
"user": {
|
||
"receipt_label": "領収書",
|
||
"view_receipt": "領収書を見る",
|
||
"view_cash_receipt": "現金領収書照会",
|
||
"easy_pay_label": "簡便決済サービス",
|
||
"test_mode_badge": "テスト決済",
|
||
"tax_breakdown_title": "税金詳細",
|
||
"supply_amount": "供給価額",
|
||
"vat_amount": "付加価値税",
|
||
"tax_free_amount": "非課税金額",
|
||
"vbank_deposit_info": "仮想口座入金ご案内",
|
||
"vbank_bank": "銀行",
|
||
"vbank_account": "口座番号",
|
||
"vbank_holder": "口座名義人",
|
||
"vbank_amount": "入金金額",
|
||
"vbank_due": "入金期限",
|
||
"vbank_notice": "入金期限内に入金が完了しない場合、注文は自動キャンセルされます。"
|
||
},
|
||
"messages": {
|
||
"refund": {
|
||
"missing_tid": "決済取引番号(TID)がありません。",
|
||
"default_reason": "管理者返金"
|
||
},
|
||
"payment": {
|
||
"auth_failed": "決済認証に失敗しました。",
|
||
"mid_mismatch": "加盟店IDが一致しません。",
|
||
"signature_mismatch": "決済署名検証に失敗しました。",
|
||
"order_not_found": "注文が見つかりません。",
|
||
"amount_mismatch": "決済金額が一致しません。",
|
||
"authorize_failed": "決済承認に失敗しました。"
|
||
}
|
||
},
|
||
"payment": {
|
||
"error": {
|
||
"sdk_url_untrusted": "決済モジュールのアドレスが正しくないため、決済を進めることができません。管理者にお問い合わせください。"
|
||
}
|
||
}
|
||
}
|