Jump to content
xt:Commerce Community Forum

Benötigen Schnittstelle für Bonitätscheck


SKalpin

Recommended Posts

Hallo,

wir benötigen für unseren xt Shop ein Modul zur Bonitätsüberprüfung über die Creditreform. Die bieten eine xml Schnittstelle an. Das Modul soll nach der Wahl der Versandart und vor Auswahl der Zahlungsart den Kunden auf Bonität überprüfen und die Zahlungsmethoden anhand des Scoring Wertes zuweisen. Dabei arbeitet dieCreditreform mit einem Ampelstatus rot, gelb grün. In den jeweiligen Zahlungsweisen soll dann eine Einstellungen vorgenommen werden können die es ermöglicht einem bestimmten Scoring Wert eine zulässige Zahlungsart zuzuweisen.

Ich habe mir schon die Finger wund gesucht aber nichts gefunden. 2 Anbieter die ich gefunden habe sind viel zu teuer in der Boniabfrage oder gekoppelt an ein Komplettsystem mit hohen Disagios.

Wer könnte ein solches Modul gegen Bezahlung für uns programmieren?

Ich denke dass eine Nachfrage danach generell existiert.

Bitte Angebote per PN an mich. Weitere Aufträge garantiert.

Gruß,

Sascha

Link to comment
Share on other sites

Hallo,

wir benötigen für unseren xt Shop ein Modul zur Bonitätsüberprüfung über die Creditreform. Die bieten eine xml Schnittstelle an. Das Modul soll nach der Wahl der Versandart und vor Auswahl der Zahlungsart den Kunden auf Bonität überprüfen und die Zahlungsmethoden anhand des Scoring Wertes zuweisen. Dabei arbeitet dieCreditreform mit einem Ampelstatus rot, gelb grün. In den jeweiligen Zahlungsweisen soll dann eine Einstellungen vorgenommen werden können die es ermöglicht einem bestimmten Scoring Wert eine zulässige Zahlungsart zuzuweisen.

Ich habe mir schon die Finger wund gesucht aber nichts gefunden. 2 Anbieter die ich gefunden habe sind viel zu teuer in der Boniabfrage oder gekoppelt an ein Komplettsystem mit hohen Disagios.

Wer könnte ein solches Modul gegen Bezahlung für uns programmieren?

Ich denke dass eine Nachfrage danach generell existiert.

Bitte Angebote per PN an mich. Weitere Aufträge garantiert.

Gruß,

Sascha

Ist bereits in Arbeit. Creditreform verhält sich nur etwas zickig. Sie bieten zwar grundsätzlich die Option, als ich aber nachgefragt hatte, wusste so keiner recht, was Sache ist. Hab diese Woche aber einen Termin vor Ort.

Link to comment
Share on other sites

Leider wissen solche Institute auch nicht immer die richtigen "Kunden-Daten".

Zahlendreher, falsches Handelsregister - Kunde verwechselt alles schon erlebt.

Würde gerne mal wissen wer zahlt wenn nach FALSCHANGABE die Kohle weg ist und bei dem Kunde nix zu holen ist!?

Link to comment
Share on other sites

@arnychrisi: werde Ihm eine PN schicken. Danke. Allerdings ist Mediafinanz recht teuer was die Abfragen angeht, oder irre ich? Bei Creditreform zahlen wir momentan unter 1 Euro je Abfrage.

@mzanier: Von UOS haben wir uns ein Angebot machen lassen. Die Funktionen lesen sich beeindruckend, allerdings sind auch hier die Abfragen sehr teuer und der Auszahlungsrythmus sehr lang.

@mbdesign: Danke, hatte arnychrisi schon drauf verwiesen.

@supervisior: Bezüglich der xml Schnittstellenbeschreibung kann ich Dir gerne Unterlagen zukommen lassen. Die haben wir von Creditreform bekommen. Villeicht bringt das weiter. So ein Modul wäre uns am liebsten, weil die Abfragen günstig sind.

Ansonsten Dank an alle für die schnellen und aussagekräftigen Antworten.

Leider sind die einzelnen, verfügbaren Module schlecht bis gar nicht zu finden. Das ist sehr schade für einen so guten Shop.

Gruß,

Sascha

Link to comment
Share on other sites

Es geht nicht um die technischen Infos. Die haben wir schon. Da sind andere Dinge zu klären, aber das entweder per Fon oder PM.

Vielleicht ein paar Allgemeine Dinge zu Bonitätsabfragen und das unabhängig vom Modul, bzw. Datenlieferant. Die Preise für die Abfragen sind sicherlich relevant für die Auswahl des Auskunfstdienstes. Im Großen und Ganzen schenken die sich aber alle nichts und die Preise richten sich größtenteils an der Menge der Abfragen. Je mehr, umso billiger.

Damit das ganze nicht doch zur Kostenfalle wird, liegt die Intelligenz von einem entsprechenden Modul u.a. darin, dass es nicht immer und nicht generell prüft. Wen ein Kunde einen positiven Score Wert hat, dann macht es wenig Sinn, diesen bei jedem Einkauf zu prüfen, wenn er z.B. 2x im Monat einkauft, sondern in Abhängigkeit von diversen Regeln. Auf diese Weise reduziern sich die Kosten erheblich ohne dass dadurch der Schutz geringer wird..

Link to comment
Share on other sites

  • 6 months later...
  • 2 weeks later...

Wir haben schon mehrere XT-Shops an die Creditreform zur Live-Bonitätsprüfung von Consumern angedockt. (Firmenkundenabfrage auch möglich). Klappt bisher einwandfrei. Wer Interesse an der Crefo Bonitätsprüfung hat oder mehr Infos dazu möchte, kann sich gerne bei mir melden. PM

MfG

Sascha

Link to comment
Share on other sites

  • 1 year later...

Bin bei der Anbindung von CEG an unseren Shop.

Habe die Ausertung der Antwort XML, aber die Abfrage selbst macht schwierigkeiten; bzw.; die Antort. (keine xml)

Auswertung:


function CEGAuswertung($xmlpage){
$logCEG = 1;
// CEG was queried, log the result at the end of this file
$anzeige = 0;
$anzeige_ggoh = 0;
$anzeige_ggde = 0;
$anzeige_ggav = 0;
$anzeige_ggaf = 0;

$site = explode('\n', $xmlpage);
foreach ($site as $zeile){
// --------------- Auswertung Rueckgabe *.XML von CEG-Abfrage -------------------
$zeile = substr ($zeile, 1);
$zeileNr += 1; // =~ /suchmuster/
//echo $zeile."<br>";
if (stristr($zeile, '<ENQUIRY>')){
$anzeige = 1;

continue;

}
if ( $anzeige == 1 ){
if (stristr($zeile, '<SEGMENT identifier="GGOH"')){
$anzeige_ggoh = 1;
}
if ( $anzeige_ggoh == 1 ){
$XML_tack = '<SEG_ELM name="#GGOH_SEGMENT_VERSION#" len="2" type="N">';
if (stristr($zeile, $XML_tack)){
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
$ggoh_segment_version = substr ($zeile, $pos , $end_pos-$pos);
}elseif (stristr($zeile, '<SEG_ELM name="#GGOH_ERROR_TYPE#" len="1" type="C">')){
$XML_tack = '<SEG_ELM name="#GGOH_ERROR_TYPE#" len="1" type="C">';
// ---------------------------------------- Auswertung Error-Type ------------
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
$ggoh_error_type = substr ($zeile, $pos , $end_pos-$pos);
echo "<br>".$zeileNr." - \$ggoh_error_type = ".$ggoh_error_type;
}
}
if (stristr($zeile, '<SEGMENT identifier="GGDE"')){
$anzeige_ggoh = 0;
$anzeige_ggde = 1;
}
if ( $anzeige_ggde == 1 ){
$XML_tack = '<SEG_ELM name="#GGDE_DELPHI_SCORE1#" len="5" type="N">';
if (stristr($zeile, $XML_tack)){
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
$HScore = substr ($zeile, $pos , $end_pos-$pos);
echo "<br>".$zeileNr." - \$HScore = ".$HScore;
}elseif (stristr($zeile, '<SEG_ELM name="#GGDE_DELPHI_SCORE2#" len="5" type="N">')){
$XML_tack = '<SEG_ELM name="#GGDE_DELPHI_SCORE2#" len="5" type="N">';
// --------- Auswertung Deli-Score2 (Die Ampel (Farbdaten: 0, 1=Rot, 2=Gelb, 3=Gruen))
//XML-Zeile: <SEG_ELM name="#GGDE_DELPHI_SCORE2#" len="5" type="N">00003</SEG_ELM>
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
$AScore = substr ($zeile, $pos , $end_pos-$pos);
echo "<br>".$zeileNr." - Ampel Farbwert: \$AScore = ".$AScore;
$AScore = (int)$AScore;
}
} //-- if ( $anzeige_ggde == ...
// ------------------------- Auswertung Kundenadresse --- (korrekt,korigiert,...) (postalische Korrektheit) ---------
if (stristr($zeile, '<SEGMENT identifier="GGAV"')){
$anzeige_ggoh = 0;
$anzeige_ggde = 0;
$anzeige_ggav = 1;
}
if ( $anzeige_ggav == 1 ){
if (stristr($zeile, '<SEG_ELM name="#GGAV_RETURN_CODE#" len="42" type="C" code_value="03">')){
$Aaender = "Adresse wurde korrigiert";
}elseif (stristr($zeile, '<SEG_ELM name="#GGAV_RETURN_CODE#" len="42" type="C" code_value="04">')){
$Aaender = "Postleitzahl und Ort können nicht eindeutig identifiziert werden.";
}elseif (stristr($zeile, '<SEG_ELM name="#GGAV_RETURN_CODE#" len="42" type="C" code_value="05">')){
$Aaender = "Postleitzahl und Ort können nicht eindeutig identifiziert werden.";
}elseif (stristr($zeile, '<SEG_ELM name="#GGAV_RETURN_CODE#" len="42" type="C" code_value="06">')){
$Aaender = "Straße kann nicht eindeutig identifiziert werden.";
}elseif (stristr($zeile, '<SEG_ELM name="#GGAV_RETURN_CODE#" len="42" type="C" code_value="07">')){
$Aaender = "Straße kann nicht eindeutig identifiziert werden.";
}elseif (stristr($zeile, '<SEG_ELM name="#GGAV_RETURN_CODE#" len="42" type="C" code_value="08">')){
$Aaender = "Postleitzahl und Ort können nicht identifiziert werden.";
}

} //-- if ( $anzeige_ggav == ...
// ------------------ Informationen über Umzugsdaten ------------------------
if (stristr($zeile, '<CHILD_SEGMENT identifier="GGAF"') && $anzeige_ggav == 1){
$anzeige_ggoh = 0;
$anzeige_ggde = 0;
$anzeige_ggaf = 1;
}

if ( $anzeige_ggaf == 1 && $anzeige_ggav == 1 ){
$XML_tack = '<SEG_ELM name="#GGAF_STREET_NO#" len="6" type="C">';
// =~ /suchmuster/
if (stristr($zeile, $XML_tack)){

//XML-Zeile: <SEG_ELM name="#GGAF_STREET_NO#" len="6" type="C">14</SEG_ELM>
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
$Ahnr = substr ($zeile, $pos , $end_pos-$pos);

}elseif (stristr($zeile, '<SEG_ELM name="#GGAF_STREET_NAME#" len="30" type="C">')){
$XML_tack = '<SEG_ELM name="#GGAF_STREET_NAME#" len="30" type="C">';
//XML-Zeile: <SEG_ELM name="#GGAF_STREET_NAME#" len="30" type="C">Hellersbgstr.</SEG_ELM>
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
$Astr = substr ($zeile, $pos , $end_pos-$pos);

}elseif (stristr($zeile, '<SEG_ELM name="#GGAF_TOWN#" len="30" type="C">')){
$XML_tack = '<SEG_ELM name="#GGAF_TOWN#" len="30" type="C">';
//XML-Zeile: <SEG_ELM name="#GGAF_TOWN#" len="30" type="C">Neuss</SEG_ELM>
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
//$Aort = $zeile;
$Aort = substr ($zeile, $pos , $end_pos-$pos);

}elseif (stristr($zeile, '<SEG_ELM name="#GGAF_POSTCODE#" len="10" type="C">')){
$XML_tack = '<SEG_ELM name="#GGAF_POSTCODE#" len="10" type="C">';
//XML-Zeile: <SEG_ELM name="#GGAF_POSTCODE#" len="10" type="C">41460</SEG_ELM>
$pos = strpos($zeile, $XML_tack) + strlen($XML_tack);
$end_pos = strpos($zeile, '</SEG_ELM>');
$Aplz = substr ($zeile, $pos , $end_pos-$pos);
}
} //-- if ( $anzeige_ggaf == ...
} //-- if ( $anzeige == 1 )
}// -- foreach

return array ($AScore,$AmpelScore[$AScore-1],$HScore);
}
[/PHP]

Vieleicht hat jemand eine Ahnung warum keine korrekte Antwort kommt!

So habe ich die Anfrage:

[PHP]
function get_https($site, $port, $script, $parameter, $uname, $pass)
{

$host = $site; // 'www.ceg-plus.com';
$service_uri = $script; // '/cgi-bin/ceg/inquire.cgi';
$vars = $parameter; // $rest_form // CEG-Paraneter

//$port = 80;
//$port = 443;
// xml version="1.0" encoding="ISO-8859-1"

// Build the header
$header = "Host: $host\r\n";
$header .= "User-Agent: PHP Script\r\n";
$header .= "Authorization: Basic ".base64_encode("$uname:$pass")."\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: ".strlen($vars)."\r\n";
$header .= "Connection: close\r\n\r\n";
if($port == 443) $site = "ssl://".$site; //$site = "https://".$site; // https



$fp = pfsockopen($site, $port, $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br/>\n";
echo $fp;
} else {
echo "[p]fsockopen(...) hat Verbindung zu '".(((int)strpos($site, 'sl://'))?'https://':'http://').$host."' über Port $port hergestellt! <br>\$fp = '".$fp."', ".$errno." ".$errstr."<br>";
fputs($fp, "POST $service_uri HTTP/1.1\r\n"); // sende *.cgi Script ('/cgi-bin/ceg/inquire.cgi')
fputs($fp, $header.$vars); // sende Kopf + Parameter
fwrite($fp, $out);
while (!feof($fp)) {
$z += 1;
$XML .= fgets($fp)."<br>\r\n";//, 128);
}
fclose($fp);
}
return array($z, $XML);

[/PHP]

[/php]

Danke

Link to comment
Share on other sites

  • 9 months later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...