You are here

function commerce_robokassa_status in Commerce robokassa 7.2

Page callback: commerce_robokassa/%commerce_robokassa_pm/%.

Fallback call result menu callback because Robokassa call result callback only on success payment.

Parameters

mixed $payment_method: Drupal commerce payment method instance passed via url param.

string $status: Payment status (fail/success allowed).

1 string reference to 'commerce_robokassa_status'
commerce_robokassa_menu in ./commerce_robokassa.module
Implements hook_menu().

File

./commerce_robokassa.module, line 80
Drupal Commerce Robokassa payment method.

Code

function commerce_robokassa_status($payment_method, $status) {
  $allowed_statuses = array(
    'success',
    'fail',
  );
  if (!in_array($status, $allowed_statuses)) {
    drupal_exit();
  }
  $data = $_POST;
  if ($status != 'success') {
    commerce_robokassa_result($payment_method, FALSE);
  }
  if (isset($data['InvId'])) {

    // This parameter availability is flag for 7.x.2.x transactions.
    $shp_trx_id = isset($data['shp_trx_id']) ? $data['shp_trx_id'] : FALSE;
    $transaction = _commerce_robokassa_transaction_load($data['InvId'], $shp_trx_id);
    if ($transaction) {
      $order = commerce_order_load($transaction->order_id);
      if ($order) {
        if ($status == 'fail') {
          drupal_set_message(t('Payment failed at the payment server. Please review your information and try again.'), 'error');
        }
        drupal_goto(commerce_checkout_order_uri($order));
      }
    }
  }
  drupal_exit();
}