-
Notifications
You must be signed in to change notification settings - Fork 0
/
chronopay.py
57 lines (42 loc) · 1.93 KB
/
chronopay.py
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
50
51
52
53
54
55
56
57
#!/usr/bin/env python2
# coding: utf-8
import logging
import cgi
from datetime import datetime
from time import localtime, strftime
from suds.client import Client
# Включено для логирования
import cgitb
cgitb.enable()
# Словарь ответов статусов от soapPayment
status_payment = {
'0': 'Платеж проведен',
'2': 'Платеж анулирован',
}
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
print "Content-Type: text/plain;charset=utf-8"
print ""
f = open('/tmp/chronopay.log', 'a')
form = cgi.FieldStorage()
f.write("----------------- current date transaction %s -----------------\n" % strftime("%a, %d %b %Y %H:%M:%S", localtime()))
for key in form.keys():
f.write("%s = %s\n" % (key, form[key].value))
url = 'file:/home/itari/djcode/soap/api3.wsdl'
client = Client(url, cache=None)
login = 'choronopay'
password = 'choronopay'
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
agrmid = str(form['cs1'].value)
# Осуществляем подключение к биллингу
login_res = client.service.Login(login, password)
soap_payment = client.factory.create('soapPayment')
soap_payment.modperson = 0 # идентификатор менеджера проводившего платеж
soap_payment.currid = 0 # Идентификатор валюты платежа
soap_payment.amount = str(form['total'].value) # сумма платежа
soap_payment.paydate = str(timestamp) # дата платежа
soap_payment.receipt = str(form['transaction_id'].value) # идентификатор платежа(В моем случае это transaction_id)
# soap_payment.comment = 'TEST' # тут и ежу понятно
soap_payment.classid = 0 # идентификатор категории платежа
result = client.service.ExternPayment(11, agrmid, 0, soap_payment, notexists=1)
client.service.Logout()