2012-07-28 165 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