0
0 комментариев

Работаю с интеркассой. Считываю инфу о платеже:

#!/usr/bin/python
#--*--coding: utf-8--*--
 
import cgi
import MySQLdb
from dbconfig import read_param
#from httplib import HTTPResponse
#import StringIO
"""
class FakeHttplibSocket(object):
    def __init__(self, response_string):
        self._buffer = StringIO.StringIO(response_string)
 
    def makefile(self, _mode, _other):
        return self._buffer
 
resp = "200 OK"
sock = FakeHttplibSocket(resp)
HTTPResponse(sock)
"""
 
form = cgi.FieldStorage()
 
id_kassa = form.getfirst('ik_co_id', '')   #ID кассы
pay_stat = form.getfirst('ik_inv_st', '')  #статус оплаты
sum_plat = form.getfirst('ik_co_rfn', '') #сумма зачисления на счёт кассы
dat_plat = form.getfirst('ik_inv_prc', '') #Дата платежа
user = form.getfirst('ik_x_user', '')       #Плательщик
sign = form.getfirst('ik_sign', '')           #Цифровая подпись в md5
 
 
try:
    id_kassa=str(id_kassa)
    pay_stat=str(pay_stat)
    sum_plat = int(sum_plat)
    dat_plat = str(dat_plat)
    user = str(user)
    sign = str(sign)
except ValueError:
    print "Ошибочные данные"
 
if id_kassa == "75yuyugiiug1jjdbe3ih8b4568":
    if pay_stat=="success":
        db_config = read_param()
        db = MySQLdb.connect(**db_config)
        cursor = db.cursor()
        cursor.execute("INSERT INTO rub_in_out(login, sum_inc_dec, date_time) VALUES(%s, %s, %s)", (user, sum_plat, dat_plat))
        db.commit()
        db.close()

После этого, чтобы они мне повторно не слали этот запрос и платеж не задваивался, затраивался и т.д. (до 10 запросов повторных насчитал) мне
нужно в ответ отправить им «200 OK».

В документации сказано:

Внимание! Данное уведомление отправляется на сервер кассы по ссылке
страницы взаимодействия (Interaction URL) до тех пор, пока SCI, по
данному запросу, не получит от сервера кассы HTTP-код состояния,
которое указанно в настройках кассы (по умолчанию — «200 OK»). Так же,
см. настройки кассы «Текст подтверждения успешного получения
уведомления о статусе платежа».

Я не пойму, как мне им отправить «200 OK» ? Мне что нужно свой минивебсервер организовать, чтоб им это отправить?


Добавить комментарий