1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<?php include $_SERVER['DOCUMENT_ROOT'] . "/standalone.php"; require $_SERVER['DOCUMENT_ROOT'] . "/classes/sberbank.class.php"; $sber = new SberbankController; $sber->setUser('sber Login'); $sber->setPassword('sber Pass'); $sber->setPasswordTest('SberPass test'); $sber->testMode(true); // тестовый режим активирован // Получаем тип объектов $typesCollection = umiObjectTypesCollection::getInstance(); $objectTypeId = $typesCollection->getBaseType('emarket', 'order'); // Здесь id объекта // Получаем объекты $objects = umiObjectsCollection::getInstance(); // фильтрация $sel = new umiSelection; $objectType = $typesCollection->getType($objectTypeId); $sel->addObjectType($objectTypeId); //Устанавливаем фильтр по типу данных $sel->addPropertyFilterEqual($objectType->getFieldId('payment_status_id'), 166); //108 $sel->addPropertyFilterEqual($objectType->getFieldId('status_oplaty_ot_sberbanka'), 1); //Получаем результаты $result = umiSelectionsParser::runSelection($sel); //Массив id объектов $total = umiSelectionsParser::runSelectionCounts($sel); //Количество записей foreach ($result as $orderId) { $obj = $objects->getObject($orderId); $sberId = $obj->getValue('number_sber'); // номер в сбербанке $sumPay = $obj->getValue('summa_oplaty'); // оплачено $sumNeed = $obj->getValue('total_price'); // стоимость заказа $status = $sber->getOrderStatusExtended($sberId); // проверяем статус заявки if ($status->errorCode == 0 && $status->orderStatus == 1) { // проверяем сумму оплаты и сумму заказа $withdraw = ($sumNeed >= $sumPay) ? $sumPay : $sumPay - $sumNeed; // кидаем номер заказа и сумму списания $res = $sber->deposit($sberId, (float) $withdraw * 100); if ($res->errorCode == 0) { $obj->setValue('status_oplaty_ot_sberbanka', 2); $obj->setValue('summa_spisaniya', $withdraw); $obj->setValue('data_spisaniya', date('d.m.Y H:i:s')); $obj->commit(); } } } |