Subversion Repositories SmartDukaan

Rev

Rev 6054 | Go to most recent revision | Details | 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
4
 
5
 
6
#url = 'http://182.71.104.182/loaddetect/Service.asmx?wsdl'
7
#client = Client(url)
8
#print client.service.HelloWorld()
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'
14
aclient = Client(account_url)
15
 
16
 
17
def rechargeDevice(transactionId, rechargeType, strProviderCode, deviceNumber, amount):
18
    raclient = Client(recharge_url)
19
    spString = raclient.service.getRecharge(username, password, '919650889334', 'SOAP', '115.249.47.66', transactionId, rechargeType, strProviderCode, deviceNumber, amount, 'DEBIT', '', '')
20
    spString = re.sub('<\?.*\?>','',spString)
21
    spString = "<dom>" + spString + "</dom>"
22
    dom = parseString(spString)
23
    response = dom.getElementsByTagName('ActiveServicesPojo')[0]
24
    retStatus = response.getElementsByTagName('resStatus')[0].childNodes[0].data
25
    retCode = response.getElementsByTagName('respCode')[0].childNodes[0].data
26
    spiceTID = response.getElementsByTagName('SpiceTID')[0].childNodes[0].data
27
    return retStatus, retCode, spiceTID
28
 
29
def getAccountdetail():
30
    return aclient.service.getAccountdetail(username, password)
31
 
32
def getBalance():
33
    return aclient.service.getBalance(username, password)
34
 
35
def checkServiceProviderApi(strServiceCode, strDeviceNumber):
36
    return aclient.service.checkServiceProviderApi(username, password, strServiceCode, strDeviceNumber)
37
 
38
def validateService(strServiceCode, strProviderCode, strDeviceNumber, dbAmount, strPlan):
39
    return aclient.service.validateService(username, password, strServiceCode, strProviderCode, strDeviceNumber, dbAmount, strPlan)
40
 
41
def getAvailableServices():
42
    spString = aclient.service.getServiceApi(username, password)
43
    spString = re.sub('<\?.*\?>','',spString)
44
    spString = "<dom>" + spString + "</dom>"
45
    dom = parseString(spString)
46
    serviceApis = dom.getElementsByTagName('ServiceApiPojo')
47
    services = {}
48
    for serviceApi in serviceApis:
49
        services[serviceApi.getElementsByTagName('serviceCode')[0].childNodes[0].data] = serviceApi.getElementsByTagName('serviceDescription')[0].childNodes[0].data 
50
    return services
51
 
52
 
53
def getServiceProvidersForMobile():
54
    return getServiceProvider('MTP')
55
 
56
def getServiceProvidersForDTH():
57
    return getServiceProvider('RCH')
58
 
59
def getServiceProvider(strServiceCode):
60
    spString = aclient.service.getServiceProvider(username, password, strServiceCode)
61
    spString = re.sub('<\?.*\?>','',spString)
62
    spString = "<dom>" + spString + "</dom>"
63
    dom = parseString(spString)
64
    providers = dom.getElementsByTagName('ServicesProviderPojo')
65
    serviceProviders = {}
66
    for provider in providers:
67
        serviceProviders[provider.getElementsByTagName('providerCode')[0].childNodes[0].data] = provider.getElementsByTagName('providerDescription')[0].childNodes[0].data 
68
    return serviceProviders
69
 
70
def getServiceDetails(strServiceCode, strProviderCode):
71
    spString = aclient.service.getServiceDetail(username, password, strServiceCode, strProviderCode)
72
    spString = re.sub('<\?.*\?>','',spString)
73
    spString = "<dom>" + spString + "</dom>"
74
    dom = parseString(spString)
75
    details = dom.getElementsByTagName('ServiceDetailPojo')
76
    serviceDetails = {}
77
    for detail in details:
78
        serviceDetails['Denomination Type'] = detail.getElementsByTagName('DenominationType')[0].childNodes[0].data
79
        serviceDetails['Denomination Value'] = detail.getElementsByTagName('DenominationValue')[0].childNodes[0].data 
80
    return serviceDetails
81
 
82
 
83