Qiwi
Материал из ExpertBilling
Версия от 17:17, 19 августа 2012; Admin (обсуждение | вклад)
В 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;