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();
}