Subversion Repositories SmartDukaan

Rev

Rev 6054 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

from suds.client import Client
import base64, re
from xml.dom.minidom import parseString


#url = 'http://182.71.104.182/loaddetect/Service.asmx?wsdl'
#client = Client(url)
#print client.service.HelloWorld()

username = base64.b64encode('saholic20')
password = base64.b64encode('ap2020sh')
account_url = 'http://125.19.68.55/McommWebServices/AccountApiMcomm?wsdl'
recharge_url = 'http://125.19.68.55/McommWebServices/RechargeApiMcomm?wsdl'
aclient = Client(account_url)


def rechargeDevice(transactionId, rechargeType, strProviderCode, deviceNumber, amount):
    raclient = Client(recharge_url)
    spString = raclient.service.getRecharge(username, password, '919650889334', 'SOAP', '115.249.47.66', transactionId, rechargeType, strProviderCode, deviceNumber, amount, 'DEBIT', '', '')
    spString = re.sub('<\?.*\?>','',spString)
    spString = "<dom>" + spString + "</dom>"
    dom = parseString(spString)
    response = dom.getElementsByTagName('ActiveServicesPojo')[0]
    retStatus = response.getElementsByTagName('resStatus')[0].childNodes[0].data
    retCode = response.getElementsByTagName('respCode')[0].childNodes[0].data
    spiceTID = response.getElementsByTagName('SpiceTID')[0].childNodes[0].data
    return retStatus, retCode, spiceTID

def getAccountdetail():
    return aclient.service.getAccountdetail(username, password)

def getBalance():
    return aclient.service.getBalance(username, password)

def checkServiceProviderApi(strServiceCode, strDeviceNumber):
    return aclient.service.checkServiceProviderApi(username, password, strServiceCode, strDeviceNumber)

def validateService(strServiceCode, strProviderCode, strDeviceNumber, dbAmount, strPlan):
    return aclient.service.validateService(username, password, strServiceCode, strProviderCode, strDeviceNumber, dbAmount, strPlan)

def getAvailableServices():
    spString = aclient.service.getServiceApi(username, password)
    spString = re.sub('<\?.*\?>','',spString)
    spString = "<dom>" + spString + "</dom>"
    dom = parseString(spString)
    serviceApis = dom.getElementsByTagName('ServiceApiPojo')
    services = {}
    for serviceApi in serviceApis:
        services[serviceApi.getElementsByTagName('serviceCode')[0].childNodes[0].data] = serviceApi.getElementsByTagName('serviceDescription')[0].childNodes[0].data 
    return services
    

def getServiceProvidersForMobile():
    return getServiceProvider('MTP')

def getServiceProvidersForDTH():
    return getServiceProvider('RCH')

def getServiceProvider(strServiceCode):
    spString = aclient.service.getServiceProvider(username, password, strServiceCode)
    spString = re.sub('<\?.*\?>','',spString)
    spString = "<dom>" + spString + "</dom>"
    dom = parseString(spString)
    providers = dom.getElementsByTagName('ServicesProviderPojo')
    serviceProviders = {}
    for provider in providers:
        serviceProviders[provider.getElementsByTagName('providerCode')[0].childNodes[0].data] = provider.getElementsByTagName('providerDescription')[0].childNodes[0].data 
    return serviceProviders
    
def getServiceDetails(strServiceCode, strProviderCode):
    spString = aclient.service.getServiceDetail(username, password, strServiceCode, strProviderCode)
    spString = re.sub('<\?.*\?>','',spString)
    spString = "<dom>" + spString + "</dom>"
    dom = parseString(spString)
    details = dom.getElementsByTagName('ServiceDetailPojo')
    serviceDetails = {}
    for detail in details:
        serviceDetails['Denomination Type'] = detail.getElementsByTagName('DenominationType')[0].childNodes[0].data
        serviceDetails['Denomination Value'] = detail.getElementsByTagName('DenominationValue')[0].childNodes[0].data 
    return serviceDetails