Как интегрировать сторонний торговый шлюз в Ubercart - PullRequest
0 голосов
/ 22 марта 2012

Я 2 дня искал, как без проблем интегрировать мой торговый шлюз в Ubercart. Поэтому я решил спросить это здесь.

У меня есть следующий код в качестве примера от моего продавца:

<form name="payFormCcard" method="post" action=" https://test.MyMerchantGateway.com/ECN/eng/payment/payForm.jsp">
<input type="hidden" name="merchantId" value="1"> 
<input type="hidden" name="amount" value="3000.0" >
<input type="hidden" name="orderRef" value="000000000014">
<input type="hidden" name="currCode" value="608" >
<input type="hidden" name="successUrl" value="http://www.yourdomain.com/Success.html">
<input type="hidden" name="failUrl" value="http://www.yourdomain.com/Fail.html">
<input type="hidden" name="cancelUrl" value="http://www.yourdomain.com/Cancel.html">
<input type="hidden" name="payType" value="N">
<input type="hidden" name="lang" value="E">
<input type="submit" name="submit">
</form>

Обратите внимание, что я изменяю фактический домен выше по соображениям безопасности.

Я хочу после оформления заказа перенаправить его на https://test.MyMerchantGateway.com/ECN/eng/payment/payForm.jsp

1 Ответ

1 голос
/ 14 июля 2012

Похоже, вы хотите совершить платеж за пределы сайта (вне вашего сайта 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

...