def api_for_bkm(request): if request.method=="POST": #Bkm tarafından müşterinin bkm üzerinde seçtiği banka, kart ve tasit bilgileri post ediliyor. istek=request.body parsed_istek = parseString(istek).getElementsByTagName('ns2:requestMerchInfoWSRequest')[0] t=parsed_istek.getElementsByTagName('t')[0].firstChild.data #token bid=parsed_istek.getElementsByTagName('bid')[0].firstChild.data #banka kodu bName=parsed_istek.getElementsByTagName('bName')[0].firstChild.data #banka adı cBin=parsed_istek.getElementsByTagName('cBin')[0].firstChild.data #kart kodu nofInst=parsed_istek.getElementsByTagName('nofInst')[0].firstChild.data #taksit sayısı ts=parsed_istek.getElementsByTagName('ts')[0].firstChild.data #postun yapıldığı timestamp s=parsed_istek.getElementsByTagName('s')[0].firstChild.data #bkm tarafından gönderilen imza siparis = Order.objects.get(extra= t) bkm=BkmExpress(siparis) #Gelen posttaki imzanın doğruluğu kontrol ediliyor. text_to_test=t+bid+bName+cBin+nofInst+ts is_verified=bkm.verify(s, text_to_test) if not is_verified: return fake_fail_function(hata_mesaji, siparis) pos_url="" #pos urli pos_id="" #pos kullanıcı adı pos_pass="" #pos şifresi auth_3d="false" #true yada false olacak. 3d desteği vermek isteniyorsa. mpi_url="" #mpi urli mpi_id="" #mpi idsi mpi_pass="" #mpi şifresi md="" # xid="" # dec_3d="false" #işlem 3d ile devam edemezse 3d siz devam edilsin mi cip="xxx.xxx.xxx.xxx" #firma ipsi extra='{"xx":"xx"}' #her pos için bu parametrelerin içinde olmayan zorunlu alanlar eklenmeli. #diğer bankaların dökümantasyonlarını okumalısınız malesef. result_code="0" result_message="SUCCESS" result_det="" d=datetime.datetime.now() ts= d.strftime("%Y%m%d-%H:%M:%S") data_to_hash=t+pos_url+pos_id+pos_pass+auth_3d+mpi_url+mpi_id+mpi_pass+md+xid+dec_3d+cip+extra+ts s=bkm.sign(data_to_hash) #response için kullanılacak olan xml xml_to_response='<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' xml_to_response+='<s:Body><bkm:requestMerchInfoResponse xmlns:bkm="http://www.bkmexpress.com.tr">' xml_to_response+='<bkm:requestMerchInfoWSResponse>' xml_to_response+='<t>%s</t>'%t xml_to_response+='<posUrl>%s</posUrl>'%pos_url xml_to_response+='<posUid>%s</posUid>'%pos_id xml_to_response+='<posPwd>%s</posPwd>'%pos_pass xml_to_response+='<s3Dauth>%s</s3Dauth>'%auth_3d xml_to_response+='<mpiUrl>%s</mpiUrl>'%mpi_url xml_to_response+='<mpiUid>%s</mpiUid>'%mpi_id xml_to_response+='<mpiPwd>%s</mpiPwd>'%mpi_pass xml_to_response+='<md>%s</md>'%md xml_to_response+='<xid>%s</xid>'%xid xml_to_response+='<s3DFDec>%s</s3DFDec>'%dec_3d xml_to_response+='<cIp>%s</cIp>'%cip xml_to_response+='<extra>%s</extra>'%extra xml_to_response+='<ts>%s</ts>'%ts xml_to_response+='<s>%s</s>'%s xml_to_response+='<result>' xml_to_response+='<resultCode>%s</resultCode>'%result_code xml_to_response+='<resultMsg>%s</resultMsg>'%result_message xml_to_response+='<resultDet>%s</resultDet>'%result_det xml_to_response+='</result>' xml_to_response+='</bkm:requestMerchInfoWSResponse>' xml_to_response+='</bkm:requestMerchInfoResponse></s:Body></s:Envelope>' return HttpResponse(xml_to_response,'text/xml') else: url = open('/path/to/RequestMerchInfoService_latest.wsdl','r') return HttpResponse(url.read(),'text/xml')
def api_for_bkm(request): if request.method == "POST": #Bkm tarafından müşterinin bkm üzerinde seçtiği banka, kart ve tasit bilgileri post ediliyor. istek = request.body parsed_istek = parseString(istek).getElementsByTagName( 'ns2:requestMerchInfoWSRequest')[0] t = parsed_istek.getElementsByTagName('t')[0].firstChild.data #token bid = parsed_istek.getElementsByTagName( 'bid')[0].firstChild.data #banka kodu bName = parsed_istek.getElementsByTagName( 'bName')[0].firstChild.data #banka adı cBin = parsed_istek.getElementsByTagName( 'cBin')[0].firstChild.data #kart kodu nofInst = parsed_istek.getElementsByTagName( 'nofInst')[0].firstChild.data #taksit sayısı ts = parsed_istek.getElementsByTagName( 'ts')[0].firstChild.data #postun yapıldığı timestamp s = parsed_istek.getElementsByTagName( 's')[0].firstChild.data #bkm tarafından gönderilen imza siparis = Order.objects.get(extra=t) bkm = BkmExpress(siparis) #Gelen posttaki imzanın doğruluğu kontrol ediliyor. text_to_test = t + bid + bName + cBin + nofInst + ts is_verified = bkm.verify(s, text_to_test) if not is_verified: return fake_fail_function(hata_mesaji, siparis) pos_url = "" #pos urli pos_id = "" #pos kullanıcı adı pos_pass = "" #pos şifresi auth_3d = "false" #true yada false olacak. 3d desteği vermek isteniyorsa. mpi_url = "" #mpi urli mpi_id = "" #mpi idsi mpi_pass = "" #mpi şifresi md = "" # xid = "" # dec_3d = "false" #işlem 3d ile devam edemezse 3d siz devam edilsin mi cip = "xxx.xxx.xxx.xxx" #firma ipsi extra = '{"xx":"xx"}' #her pos için bu parametrelerin içinde olmayan zorunlu alanlar eklenmeli. #diğer bankaların dökümantasyonlarını okumalısınız malesef. result_code = "0" result_message = "SUCCESS" result_det = "" d = datetime.datetime.now() ts = d.strftime("%Y%m%d-%H:%M:%S") data_to_hash = t + pos_url + pos_id + pos_pass + auth_3d + mpi_url + mpi_id + mpi_pass + md + xid + dec_3d + cip + extra + ts s = bkm.sign(data_to_hash) #response için kullanılacak olan xml xml_to_response = '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' xml_to_response += '<s:Body><bkm:requestMerchInfoResponse xmlns:bkm="http://www.bkmexpress.com.tr">' xml_to_response += '<bkm:requestMerchInfoWSResponse>' xml_to_response += '<t>%s</t>' % t xml_to_response += '<posUrl>%s</posUrl>' % pos_url xml_to_response += '<posUid>%s</posUid>' % pos_id xml_to_response += '<posPwd>%s</posPwd>' % pos_pass xml_to_response += '<s3Dauth>%s</s3Dauth>' % auth_3d xml_to_response += '<mpiUrl>%s</mpiUrl>' % mpi_url xml_to_response += '<mpiUid>%s</mpiUid>' % mpi_id xml_to_response += '<mpiPwd>%s</mpiPwd>' % mpi_pass xml_to_response += '<md>%s</md>' % md xml_to_response += '<xid>%s</xid>' % xid xml_to_response += '<s3DFDec>%s</s3DFDec>' % dec_3d xml_to_response += '<cIp>%s</cIp>' % cip xml_to_response += '<extra>%s</extra>' % extra xml_to_response += '<ts>%s</ts>' % ts xml_to_response += '<s>%s</s>' % s xml_to_response += '<result>' xml_to_response += '<resultCode>%s</resultCode>' % result_code xml_to_response += '<resultMsg>%s</resultMsg>' % result_message xml_to_response += '<resultDet>%s</resultDet>' % result_det xml_to_response += '</result>' xml_to_response += '</bkm:requestMerchInfoWSResponse>' xml_to_response += '</bkm:requestMerchInfoResponse></s:Body></s:Envelope>' return HttpResponse(xml_to_response, 'text/xml') else: url = open('/path/to/RequestMerchInfoService_latest.wsdl', 'r') return HttpResponse(url.read(), 'text/xml')
def bkm_express_odeme(self, siparis): bkm=BkmExpress(siparis) return bkm.initialize_payment()
def bkm_express_odeme(self, siparis): bkm = BkmExpress(siparis) return bkm.initialize_payment()