Subversion Repositories SmartDukaan

Rev

Rev 6112 | Rev 6144 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6048 rajveer 1
from suds.client import Client
2
import base64, re
3
from xml.dom.minidom import parseString
6092 rajveer 4
import logging
5
logging.basicConfig(level=logging.INFO)
6102 rajveer 6
#logging.getLogger('suds.client').setLevel(logging.DEBUG)
7
#logging.getLogger('suds.transport').setLevel(logging.DEBUG)
6048 rajveer 8
 
9
 
10
username = base64.b64encode('saholic20')
11
password = base64.b64encode('ap2020sh')
12
account_url = 'http://125.19.68.55/McommWebServices/AccountApiMcomm?wsdl'
13
recharge_url = 'http://125.19.68.55/McommWebServices/RechargeApiMcomm?wsdl'
6135 anupam.sin 14
try:
15
    aclient = Client(account_url, timeout=30)
16
    raclient = Client(recharge_url, timeout=30)
17
except:
18
    print 'ERROR : SpiceHarbour APIs are not working'
6048 rajveer 19
 
20
 
21
def rechargeDevice(transactionId, rechargeType, strProviderCode, deviceNumber, amount):
22
    spString = raclient.service.getRecharge(username, password, '919650889334', 'SOAP', '115.249.47.66', transactionId, rechargeType, strProviderCode, deviceNumber, amount, 'DEBIT', '', '')
6093 rajveer 23
    print spString
6048 rajveer 24
    spString = re.sub('<\?.*\?>','',spString)
25
    spString = "<dom>" + spString + "</dom>"
26
    dom = parseString(spString)
27
    response = dom.getElementsByTagName('ActiveServicesPojo')[0]
28
    retStatus = response.getElementsByTagName('resStatus')[0].childNodes[0].data
29
    retCode = response.getElementsByTagName('respCode')[0].childNodes[0].data
30
    spiceTID = response.getElementsByTagName('SpiceTID')[0].childNodes[0].data
6092 rajveer 31
    retDesc = response.getElementsByTagName('shotDesc')[0].childNodes[0].data
32
    return retStatus, retCode, spiceTID, retDesc 
6048 rajveer 33
 
34
def getAccountdetail():
35
    return aclient.service.getAccountdetail(username, password)
36
 
37
def getBalance():
38
    return aclient.service.getBalance(username, password)
39
 
40
def checkServiceProviderApi(strServiceCode, strDeviceNumber):
6054 rajveer 41
    spString = aclient.service.checkServiceProviderApi(username, password, strServiceCode, strDeviceNumber)
6093 rajveer 42
    print spString
6054 rajveer 43
    spString = re.sub('<\?.*\?>','',spString)
44
    spString = "<dom>" + spString + "</dom>"
45
    dom = parseString(spString)
46
    response = dom.getElementsByTagName('CheckServiceProviderPojo')[0]
47
    providerCode = response.getElementsByTagName('providerCode')[0].childNodes[0].data
48
    return providerCode
6048 rajveer 49
 
50
def validateService(strServiceCode, strProviderCode, strDeviceNumber, dbAmount, strPlan):
51
    return aclient.service.validateService(username, password, strServiceCode, strProviderCode, strDeviceNumber, dbAmount, strPlan)
52
 
53
def getAvailableServices():
54
    spString = aclient.service.getServiceApi(username, password)
6109 rajveer 55
    print spString
6048 rajveer 56
    spString = re.sub('<\?.*\?>','',spString)
57
    spString = "<dom>" + spString + "</dom>"
58
    dom = parseString(spString)
59
    serviceApis = dom.getElementsByTagName('ServiceApiPojo')
60
    services = {}
61
    for serviceApi in serviceApis:
62
        services[serviceApi.getElementsByTagName('serviceCode')[0].childNodes[0].data] = serviceApi.getElementsByTagName('serviceDescription')[0].childNodes[0].data 
63
    return services
64
 
65
 
66
def getServiceProvidersForMobile():
67
    return getServiceProvider('MTP')
68
 
69
def getServiceProvidersForDTH():
70
    return getServiceProvider('RCH')
71
 
72
def getServiceProvider(strServiceCode):
73
    spString = aclient.service.getServiceProvider(username, password, strServiceCode)
6109 rajveer 74
    print spString
6048 rajveer 75
    spString = re.sub('<\?.*\?>','',spString)
76
    spString = "<dom>" + spString + "</dom>"
77
    dom = parseString(spString)
78
    providers = dom.getElementsByTagName('ServicesProviderPojo')
79
    serviceProviders = {}
80
    for provider in providers:
81
        serviceProviders[provider.getElementsByTagName('providerCode')[0].childNodes[0].data] = provider.getElementsByTagName('providerDescription')[0].childNodes[0].data 
82
    return serviceProviders
83
 
84
def getServiceDetails(strServiceCode, strProviderCode):
85
    spString = aclient.service.getServiceDetail(username, password, strServiceCode, strProviderCode)
6109 rajveer 86
    print spString
6048 rajveer 87
    spString = re.sub('<\?.*\?>','',spString)
88
    spString = "<dom>" + spString + "</dom>"
89
    dom = parseString(spString)
90
    details = dom.getElementsByTagName('ServiceDetailPojo')
91
    serviceDetails = {}
92
    for detail in details:
93
        serviceDetails['Denomination Type'] = detail.getElementsByTagName('DenominationType')[0].childNodes[0].data
94
        serviceDetails['Denomination Value'] = detail.getElementsByTagName('DenominationValue')[0].childNodes[0].data 
95
    return serviceDetails
96
 
6112 rajveer 97
def checkTransactionStatus(spiceTID='', merchantTxnId=''):
98
    spString = raclient.service.getCheckStatus(username,password,spiceTID,merchantTxnId)
99
    print spString
100
    spString = re.sub('<\?.*\?>','',spString)
101
    spString = "<dom>" + spString + "</dom>"
102
    dom = parseString(spString)
103
    response = dom.getElementsByTagName('CheckStatusObj')[0]
104
    responseCode = response.getElementsByTagName('ResponseCode')[0].childNodes[0].data
105
    transStatus = response.getElementsByTagName('transStatus')[0].childNodes[0].data
106
    responseDescription = response.getElementsByTagName('ResponseDescription')[0].childNodes[0].data
107
    if responseCode == '00' and transStatus == 'S':
108
        return True, responseDescription
109
    else:
110
        return False, responseDescription