オリジナルCommerce決済モジュール(Offsite)で決済サーバーへのPOST時のエンコードを変更する方法

カテゴリ Commerce コアバージョン 8.6.x 関連モジュール Commerce Payment Gateway

commerce_xxx.module

function commerce_xxx_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  if (strpos($form_id,'commerce_checkout_flow_multistep_') === 0) {
    if ($form['#step_id'] == 'payment') { // Checkout stepを特定
      if ($buildInfo = $form_state->getBuildInfo()) {
        if (isset($buildInfo['callback_object'])) {
          $callback_object = clone $buildInfo['callback_object'];
          if (method_exists($callback_object, 'getOrder')) {
            if ($order = $callback_object->getOrder()) {
              if ($payment_gateway = $order->get('payment_gateway')) {
                $name = $payment_gateway->getValue();
                if (isset($name[0]['target_id'])) {
                  if ($name[0]['target_id'] == 'xxxxxxxxxxxxx') { // 決済ゲートウェイを特定
                    $form['#attributes']['accept-charset'] = 'xxxxxxx'; // Shift_JIS など
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール降順で並び替える タイトル
アップデート 8.8.x Composer composer updateが異常終了する
アップデート 8.9.x composer patch patch を composer に 組み込む方法
アップデート 8.9.x Composer update composer update するときに パッチが必要なモジュールが更新されパッチが消えてしまうことへ対応する方法
アップデート 8.9.x Composer update Composer で drupal/core-8.9.7 に更新できなくなった場合の処置
サイトの構築 7.23 Conditional fields ノード編集フォームを動的にしたい
コンテンツの管理 7.15 Content Access 簡単に閲覧制限を行うには?
サイトの構築 7.38 Content Template ページテンプレートが反映されません。
サイトの構築 7.27 Context block ページ別、カテゴリ別等でブロックの表示有無を簡単にするには
拡張機能 8.3x Contribute modules drupal8-寄贈モジュールの動向
テーマ 8.3x Contribute themes drupal8-寄贈テーマの動向
アップデート 7.34 Core 簡単にCoreのセキュリティアップデートがしたい
アップデート 7.16 Core 7.15→7.16アップデート
テーマ 8.3x Core Twig開発用の設定
権限 7.50 Cron Basic認証時のCron(wget)実行方法
コンテンツの作成 8.9.x CSS キャプション付きの(右寄/左寄)画像を画像サイズを基準にきれいに表示する方法
テーマ 7.15 CSS Injector 簡単にCSSを追加したい
Custom module 8.3x Custom module Twig Block Cache カスタムモジュールのレンダリングを非キャッシュ化する方法
コンテンツの作成 7.15 Darty Form 編集ページでの操作ミス
フォーム 7.15 DefaultTextForNode 新しいページの作成方法を一から教えてください
サイトの構築 7.38 deployment 冗長構成におけるアップロードおよび時間指定公開について

ページ