Qiwi — различия между версиями
Материал из ExpertBilling
					
										
					
					| Admin (обсуждение | вклад) | Admin (обсуждение | вклад)  | ||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 10: | Строка 10: | ||
| <pre> | <pre> | ||
| − | */5 * * * *  | + | */5 * * * * python /opt/ebs/web/ebscab/paymentgateways/qiwi/qiwiapi.py > /opt/ebs/data/log/qiwi_process.log & | 
| + | </pre> | ||
| + | |||
| + | Для версии 1.4.1 дополнительно требуется импортировать в базу данных функцию | ||
| + | <pre> | ||
| + | CREATE OR REPLACE FUNCTION account_payment_transaction_trg_fn() | ||
| + |   RETURNS trigger AS | ||
| + | $BODY$ | ||
| + | BEGIN | ||
| + | |||
| + | IF (TG_OP = 'INSERT') AND NEW.accepted = TRUE THEN | ||
| + |     UPDATE billservice_account SET ballance=ballance+NEW.summ WHERE id=NEW.account_id; | ||
| + |     RETURN NEW; | ||
| + | END IF;     | ||
| + | IF (TG_OP = 'INSERT') AND NEW.accepted = FALSE THEN | ||
| + |     RETURN NEW; | ||
| + | END IF;     | ||
| + | IF (TG_OP = 'DELETE') AND OLD.accepted = TRUE THEN | ||
| + |     UPDATE billservice_account SET ballance=ballance-OLD.summ WHERE id=OLD.account_id; | ||
| + |     RETURN OLD; | ||
| + | END IF;     | ||
| + | IF (TG_OP = 'UPDATE') AND NEW.accepted = TRUE AND OLD.accepted = FALSE THEN | ||
| + |     UPDATE billservice_account SET ballance=ballance+NEW.summ WHERE id=NEW.account_id; | ||
| + |     RETURN NEW; | ||
| + | END IF; | ||
| + | IF (TG_OP = 'UPDATE') AND NEW.accepted = FALSE AND OLD.accepted = TRUE THEN | ||
| + |     UPDATE billservice_account SET ballance=ballance-OLD.summ WHERE id=NEW.account_id; | ||
| + |     RETURN NEW; | ||
| + | END IF;     | ||
| + | IF (TG_OP = 'UPDATE') AND NEW.accepted = TRUE AND OLD.accepted = TRUE THEN | ||
| + |   UPDATE billservice_account SET ballance=ballance-OLD.summ WHERE id=NEW.account_id; | ||
| + |   UPDATE billservice_account SET ballance=ballance+NEW.summ WHERE id=NEW.account_id; | ||
| + |   RETURN NEW; | ||
| + | END IF; | ||
| + | IF (TG_OP = 'UPDATE') AND NEW.accepted = FALSE AND OLD.accepted=False THEN | ||
| + |   RETURN NEW; | ||
| + | END IF; | ||
| + | RETURN NULL; | ||
| + | END; | ||
| + | $BODY$ | ||
| + |   LANGUAGE plpgsql VOLATILE | ||
| + |   COST 100; | ||
| </pre> | </pre> | ||
Текущая версия на 17:17, 19 августа 2012
В ExpertBilling 1.4 реализовано 2 схемы работы с системой QiWi:
- выставление счетов с последующей проверкой оплаченных счетов и занесением их в базу.
- выставление счетов и автоматическое их подтверждене, в случае указания абонентом пароля для доступа к своему qiwi кошельку.
-Настройка приёма платежей через платёжную систему QiWi осуществляется в 2 этапа:
- В файле веб-кабинета ebscab/paymentgateways/qiwi/qiwiapi.py прописать id терминала, пароль и другие параметры для работы с qiwi
- Прописать в crontab запуск скрипта, который будет просматривать подтверждённые счета и делать проводки в базе данных.
*/5 * * * * python /opt/ebs/web/ebscab/paymentgateways/qiwi/qiwiapi.py > /opt/ebs/data/log/qiwi_process.log &
Для версии 1.4.1 дополнительно требуется импортировать в базу данных функцию
CREATE OR REPLACE FUNCTION account_payment_transaction_trg_fn()
  RETURNS trigger AS
$BODY$
BEGIN
IF (TG_OP = 'INSERT') AND NEW.accepted = TRUE THEN
    UPDATE billservice_account SET ballance=ballance+NEW.summ WHERE id=NEW.account_id;
    RETURN NEW;
END IF;    
IF (TG_OP = 'INSERT') AND NEW.accepted = FALSE THEN
    RETURN NEW;
END IF;    
IF (TG_OP = 'DELETE') AND OLD.accepted = TRUE THEN
    UPDATE billservice_account SET ballance=ballance-OLD.summ WHERE id=OLD.account_id;
    RETURN OLD;
END IF;    
IF (TG_OP = 'UPDATE') AND NEW.accepted = TRUE AND OLD.accepted = FALSE THEN
    UPDATE billservice_account SET ballance=ballance+NEW.summ WHERE id=NEW.account_id;
    RETURN NEW;
END IF;
IF (TG_OP = 'UPDATE') AND NEW.accepted = FALSE AND OLD.accepted = TRUE THEN
    UPDATE billservice_account SET ballance=ballance-OLD.summ WHERE id=NEW.account_id;
    RETURN NEW;
END IF;    
IF (TG_OP = 'UPDATE') AND NEW.accepted = TRUE AND OLD.accepted = TRUE THEN
  UPDATE billservice_account SET ballance=ballance-OLD.summ WHERE id=NEW.account_id;
  UPDATE billservice_account SET ballance=ballance+NEW.summ WHERE id=NEW.account_id;
  RETURN NEW;
END IF;
IF (TG_OP = 'UPDATE') AND NEW.accepted = FALSE AND OLD.accepted=False THEN
  RETURN NEW;
END IF;
RETURN NULL;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

