2012-07-28 163 views
0

我是Drupal的新手,我必須爲ubercart寫一個新的自定義付款方式。我簡要了解了Drupal的鉤子系統。在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; 
} 
?> 

然而,當我看到貝寶模塊是如何實現的:

$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, 
); 

還有一些特殊領域,如重定向和no_gateway。我在哪裏可以找到這些文件以查看這些字段實際上做了什麼?

非常感謝您的幫助。

+0

不要忘記您唯一可以做的自定義是付款方式。 。 可能是貝寶模塊引入了這個數組的新密鑰?這並不罕見。 對不起,雖然我找不到鏈接。 – 2012-07-28 17:45:53

回答

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

+0

我遵循您的博客http://nmc-code.blogspot.ca/2012/07/how-to-create-custom-ubercart-payment.html 但是,我無法無法支付方法模塊。可以幫我? – peifa 2015-11-20 09:49:25

+0

@peifa我建議你想出一個關於你在哪裏或如何被卡住的具體問題,並在這個論壇上提問。 – nmc 2015-11-23 14:08:06