Яндекс деньги и commerce

Главные вкладки

Аватар пользователя coffein89 coffein89 15 января 2015 в 9:25

https://github.com/aTastyCookie/yandexmoney_drupal_commerce_and_ubercart

кто-нибудь устанавливал этот модуль для commerce?
Получиться должна вот такая форма оплаты.

Но если написать только кошелек в настройках, ничего не работает, только снимаются деньги.

Попробовал делать проверку на через http уведомления.

Запрос идет к этому скрипту, который я написал сам

function omhom_custom_yandex_check_page(){

    $order_id          = $_POST['label'];//id заказа
    $operation_id      = $_POST['operation_id'];//id операции в системе яндекса
    $amount            = $_POST['amount'];//сумма зачисленная магазину
    $withdraw_amount   = $_POST['withdraw_amount'];//сумма списанная с покупателя
    $sender            = $_POST['sender'];//номер счета если с кошелька, иначе пустая строка
    $notification_type = $_POST['notification_type'];
    $currency          = $_POST['currency'];
    $datetime          = $_POST['datetime'];
    $codepro           = $_POST['codepro'];
    $sha1_hash         = $_POST['sha1_hash'];
   
    $hash_string = $notification_type.'&'.$operation_id.'&'.
            $amount.'&'.$currency.'&'.$datetime.'&'.$sender.
            '&'.$codepro.'&'.YANDEX_SECRET_KEY.'&'.$order_id;
    $tocheck = sha1($hash_string);

    if($tocheck == $sha1_hash){
     
        $order = commerce_order_load($order_id);  
        $order_wrapper = entity_metadata_wrapper('commerce_order', $order);
     
        $amount = $order_wrapper->commerce_order_total->amount->value();
   
        $currency_code = $order_wrapper->commerce_order_total->currency_code->value();
   
        $payment_method = commerce_payment_method_instance_load('ya_commerce|commerce_payment_ya_commerce');
        $transaction = commerce_payment_transaction_new('ya_commerce', $order_id);
        $transaction->instance_id = $payment_method;
        $transaction->amount = $amount;
        $transaction->currency_code = $currency_code;
        $transaction->status = COMMERCE_PAYMENT_STATUS_SUCCESS;
        $transaction->message = t('The payment has completed.');
       
        commerce_payment_transaction_save($transaction);
   }
   print '';
   exit;
}

Транзакция сохраняется - в заказе есть оплата.
Но статус стоит Оформление заказа оплата. Как завершить оплату заказа?

Комментарии

Аватар пользователя coffein89 coffein89 15 января 2015 в 9:42

rules_invoke_all('commerce_checkout_complete', $order);

добавил эту строчку - заработало.
может кто подскажет как, теперь отклонить заказ в случае ошибки?