Hej jag har provat göra ett betalsystem i Python som ska göra betalningar med Paysons API
http://api.payson.se/ Jag får rätt svar när jag trycker på knappen så det verkar funka och jag undrar om ni kan kolla på källkoden om det ser OK ut? Jag har inte testat delen receive men delen send dvs översta delen har jag testat och den ser ut att funka.
class PaysonHandler(webapp2.RequestHandler):
def get(self):
"""
............Returns a simple HTML form for Payson
........"""
logging.info('in payson')
SellerEmail = '
[email protected]'
Cost = 250
ExtraCost=0
GuaranteeOffered=2
OkUrl = self.request.host+"/payson_okurl" # TO DO
Key = '3190fb33-6152-4052-b95a-379b430de6b6'
text = SellerEmail + ':' + str(Cost) + ':' + str(ExtraCost) + ':' + OkUrl + ':' + str(GuaranteeOffered) + Key
logging.info('mdtext5: '+text)
m = hashlib.md5()
Generated_MD5_Hash_Value = hashlib.md5(text).hexdigest()
BuyerEmail = '
[email protected]'
AgentID = 11366
path = os.path.join(os.path.dirname(__file__), 'templates',
'payson.html')
self.response.out.write(template.render(path, {
'SellerEmail':SellerEmail, 'Cost':Cost, 'Cost':Cost, 'AgentID':AgentID,
'ExtraCost':ExtraCost, 'GuaranteeOffered':GuaranteeOffered, 'OkUrl':OkUrl, 'Key':Key, 'Generated_MD5_Hash_Value':Generated_MD5_Hash_Valu e, 'BuyerEmail':BuyerEmail, }))
class PaysonReceiveHandler(webapp2.RequestHandler):
def get(self):
"""
............Receives Payson messages. Not tested
........"""
logging.info('in payson')
SellerEmail = '
[email protected]'
Cost = 10
ExtraCost=0
GuaranteeOffered=2
OkUrl = self.request.host+'/payson_okurl' # TO DO
text = SellerEmail + ':' + str(Cost) + ':' + str(ExtraCost) + ':' + OkUrl + ':' + str(GuaranteeOffered) + Key
logging.info('mdtext5: '+text)
m = hashlib.md5()
Generated_MD5_Hash_Value = hashlib.md5(text).hexdigest()
AgentID = 11366
strYourSecretKey = "319b33-52-4052-b5a-3b430db6";
strOkURL = self.request.GET.get('OkURL')
strRefNr = self.request.GET.get('RefNr')
strPaysonRef = self.request.GET.get('Paysonref')
strTestMD5String = strOkURL + strPaysonRef + strYourSecretKey
strMD5Hash = hashlib.md5(strTestMD5String).hexdigest()
logging.info('testing MD5 value')
if strMD5Hash == self.request.GET.get('MD5'):
logging.info('Korrekt anrop från Payson')
logging.info('Rätt!')
logging.info('OkUrl: ') + strOkURL
logging.info('RefNr: ') + strRefNr
logging.info('PaysonRef: ') + strPaysonRef
else:
#Felaktigt anrop från någon annan.
logging.info("Felaktig MD5-summa!")