Кто-нибудь знает пример сценария для Barclaycard ePDQ MPI с использованием PHP & CURL - PullRequest
2 голосов
/ 25 апреля 2011

Я создаю сайт с использованием PHP, и он должен получить доступ к интерфейсу оплаты Barclaycard ePDQ MPI. Я делал это до того, как использовал старый API-интерфейс HSBC XML, но карта Barclaycard, похоже, доставляет мне несколько проблем. API HSBC имел довольно плохую документацию и несколько примеров, поэтому мне пришлось опубликовать пример сам (не в stackoverflow) около 2 лет назад.

То, что я делаю, - это сбор информации о клиентах из моей базы данных, получение сведений о карте, которые я проверял с использованием JavaScript, затем PHP на сервере, создание оболочки XML и публикацию с использованием CURL. Все утро у меня не было ничего, кроме проблем, так кто-нибудь знает несколько хороших примеров использования интерфейса оплаты Barclaycard ePDQ?

Я установил все требования (SSL и т. Д.), Но до сих пор не получил ответа от Barclaycard. Я предпочел бы найти хороший пример, который публикует различные вопросы на этом сайте.

Пожалуйста, перешлите любые хорошие URL, я нахожу очень мало через Google.

Приветствия

1 Ответ

0 голосов
/ 05 мая 2011

Я поднял еще один вопрос по этому поводу, но пока ... вот правильная настройка CURL, которую вы должны сделать ...

Я понимаю, что переменные могут быть лучше, и я должен сделать это как объект, но я просто хочу получить быстрый ответ там. Сценарий также должен просеивать различные сообщения об ошибках и ошибках, но это то, что я получил до сих пор ...

$ch = curl_init();
$url = "https://secure2.epdq.co.uk:11500"; // Don't need to add curl_setopt($curlSession, CURLOPT_PORT, 443); as port is included
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); // $vars is your XML 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$data = curl_exec($ch);
curl_close ($ch);

$xml = new domDocument;
$xml->loadXML($data);

if (!$xml) {
    echo 'Error while parsing the document - Please Contact to determine if payment has gone though';
    exit;
}

$x = $xml->getElementsByTagName( "CcErrCode" );
$approved = $x->item(0)->nodeValue;

$xx = $xml->getElementsByTagName( "CcReturnMsg" );
$CcReturnMsg = $xx->item(0)->nodeValue;

if($approved) {

// the card is valid.
    $y = $xml->getElementsByTagName( "Id" );
    $BCardId = $y->item(1)->nodeValue;

    $z = $xml->getElementsByTagName( "MessageList" );
    $MessageList = $z->item(0)->nodeValue;

    $zz = $xml->getElementsByTagName( "AvsRespCode" );
    $AvsRespCode = $zz->item(0)->nodeValue;

    $zzz = $xml->getElementsByTagName( "AvsDisplay" );
    $AvsDisplay = $zzz->item(0)->nodeValue;

    $zzzz = $xml->getElementsByTagName( "ProcReturnMsg" );
    $ProcReturnMsg = $zzzz->item(0)->nodeValue;

     if($approved == "1"){
       echo "approved!<br />";
       echo "BCardId: " . $BCardId . ", MessageList=" . $MessageList . ", " . $AvsRespCode . ", " . $AvsDisplay . ", " . $ProcReturnMsg;
       die();
     }else{
       // raise that it's been partially accepted, 
       echo "partially approved";
       echo "BCardId: " . $BCardId . ", MessageList=" . $MessageList . ", " . $AvsRespCode . ", " . $AvsDisplay . ", " . $ProcReturnMsg;
       die();
     }

}else{
   echo "you have been completely knocked back";
   $zzzzz = $xml->getElementsByTagName( "Text" );
   $BCard_Text = $zzzzz->item(0)->nodeValue;
   echo "The reason:" . $BCard_Text;    
   die();
}

надеюсь, что это поможет другим людям, которые должны это настроить!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...