Похоже, вы хотите совершить платеж за пределы сайта (вне вашего сайта Drupal), поэтому в вашем модуле оплаты вам нужно будет указать способ оплаты, который перенаправляет следующим образом:
function my_pay_gateway_uc_payment_method() {
$methods[] = array(
'id' => 'my_pay_credit',
'name' => t('My Payment Gateway'),
'title' => t('My Payment Gateway'),
'desc' => t('Pay through my payment gateway'),
'callback' => 'my_payment_method',
'redirect' => 'my_payment_form', // <-- Note the redirect callback provided
'weight' => 1,
'checkout' => TRUE,
);
return $methods;
}
Затем вам нужно добавить код к обратному вызову перенаправления, чтобы создать форму, которая находится за кнопкой Отправить заказ , чтобы перенаправить на ваш платежный шлюз, включая всю необходимую информацию, такую как:
function my_payment_form($form, &$form_state, $order) {
// Build the data to send to my payment gateway
$data = array(
'merchantId' => '1',
'amount' => '3000.0',
'orderRef' => '000000000014',
'currCode' => '608',
// You can fill in the rest...
);
// This code goes behind the final checkout button of the checkout pane
foreach ($data as $name => $value) {
if (!empty($value)) {
$form[$name] = array('#type' => 'hidden', '#value' => $value);
}
}
$form['#action'] = 'https://test.MyMerchantGateway.com/ECN/eng/payment/payForm.jsp';
$form['actions'] = array('#type' => 'actions');
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit Orders'),
);
return $form;
}
Более подробную информацию см. В моем блоге: http://nmc -codes.blogspot.ca / 2012/07 / как создать пользовательский ubercart-payment.html