https://github.com/aTastyCookie/yandexmoney_drupal_commerce_and_ubercart
кто-нибудь устанавливал этот модуль для commerce?
Получиться должна вот такая форма оплаты.
Но если написать только кошелек в настройках, ничего не работает, только снимаются деньги.
Попробовал делать проверку на через http уведомления.
Запрос идет к этому скрипту, который я написал сам
$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;
}
Транзакция сохраняется - в заказе есть оплата.
Но статус стоит Оформление заказа оплата. Как завершить оплату заказа?
Комментарии
rules_invoke_all('commerce_checkout_complete', $order);
добавил эту строчку - заработало.
может кто подскажет как, теперь отклонить заказ в случае ошибки?
а не намекнёте ли, куда строчку rules_invoke_all('commerce_checkout_complete', $order); добавили? Проблема точно такая же.