function commerce_robokassa_transaction in Commerce robokassa 7.2
Creates an payment transaction for the specified charge amount.
Parameters
mixed $payment_method: Drupal commerce payment method instance.
object $order: Drupal commerce order object.
mixed $charge: Amount to be charged.
Return value
mixed Created transaction.
2 calls to commerce_robokassa_transaction()
- commerce_robokassa_submit_form_submit in ./commerce_robokassa.module 
- Payment method callback: submit form submission.
- _commerce_robokassa_transaction_load in ./commerce_robokassa.module 
- Payment transaction load helper.
File
- ./commerce_robokassa.module, line 551 
- Drupal Commerce Robokassa payment method.
Code
function commerce_robokassa_transaction($payment_method, $order, $charge) {
  $transaction = commerce_payment_transaction_new('commerce_robokassa', $order->order_id);
  $transaction->instance_id = $payment_method['instance_id'];
  $transaction->amount = $charge['amount'];
  $transaction->currency_code = $charge['currency_code'];
  $transaction->status = COMMERCE_PAYMENT_STATUS_PENDING;
  $transaction->message = 'User redirected to robokassa';
  // Robokassa does not support remote ID in response so populate
  // transaction->remote_id with random int. This value will be used as
  // Robokassa InvId request parameter.
  // We can't use transaction id as value for InvId because possible
  // CSRF attack. Also we can't use hash or any non int value for InvId
  // because documentation requirements.
  $guid = sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
  $transaction->remote_id = $guid;
  commerce_payment_transaction_save($transaction);
  return $transaction;
}