0

Drupal は初めてなので、ubercart 用の新しいカスタム支払い方法を作成する必要があります。Drupal のフック システムについて簡単に理解できました。

ubercart API ドキュメントのhttp://www.ubercart.org/docs/api/hook_payment_method :

<?php
function uc_payment_payment_method() {
  $methods[] = array(
    'id' => 'check',
    'name' => t('Check'),
    'title' => t('Check or Money Order'),
    'desc' => t('Pay by mailing a check or money order.'),
    'callback' => 'uc_payment_method_check',
    'weight' => 1,
    'checkout' => TRUE,
  );
  return $methods;
}
?>

ただし、paypal モジュールがどのように実装されているかを見ると、次のようになります。

$methods[] = array(
    'id' => 'paypal_wps',
    'name' => t('PayPal Website Payments Standard'),
    'title' => $title1 . $title2,
    'review' => t('PayPal'),
    'desc' => t('Redirect users to submit payments through PayPal.'),
    'callback' => 'uc_payment_method_paypal_wps',
    'redirect' => 'uc_paypal_wps_form',
    'weight' => 1,
    'checkout' => FALSE,
    'no_gateway' => TRUE,
  );

redirect や no_gateway などの特別なフィールドがいくつかあります。これらのフィールドが実際に何をするかを確認するためのドキュメントはどこにありますか?

助けてくれてありがとう。

4

1 に答える 1

1

http://api.ubercart.me/で Ubercart API ドキュメントを確認することもできます。

しかし、 については、参照hook_uc_payment_method()したドキュメント以外の情報はありません。

例として PayPal 支払いモジュールを見ると、リダイレクト コールバックが、オフサイトの支払いゲートウェイにリダイレクトする最後のチェックアウト ボタンの背後にあるコードを指定していることがわかりました。

つまり、uc_paypal_wps_form最後のチェックアウト ボタンの後ろに生成されるフォームです。レンダリングされたチェックアウト ボタン要素を Firebug で検査すると、この関数によって生成されたフォームが表示されます。

また、私のブログ ( http://nmc-codes.blogspot.ca/2012/07/how-to-create-custom-ubercart-payment.html ) に例を投稿しています。

オプションに関してno_gatewayは、ubercart モジュールで参照できる唯一のコードは次のとおりです。

if (empty($method['no_gateway'])) {
  $gateways = _uc_payment_gateway_list($id, TRUE);
  $options = array();
  foreach ($gateways as $gateway_id => $gateway) {
    $options[$gateway_id] = $gateway['title'];
  }
  if ($options) {
    $form['pmtable'][$id]['uc_payment_method_' . $id . '_checkout']['#title'] .= ' (' . t('includes %gateways', array('%gateways' => implode(', ', $options))) . ')';
  }
}

あまり効果がないように見えますが、支払い方法の管理者リストで表示すると、支払い方法のラベル/タイトルに追加されますadmin/store/settings/payment

于 2012-07-28T18:11:47.787 に答える