Я использую интеграцию Realex API с DCC и ниже мой код:
Создание хеша MD5:
$tmp = "$timestamp.$merchantid.$orderid.$amountinCents.$currency.$cardnumber";
$md5hash = md5($tmp);
$tmp = "$md5hash.$secret";
$md5hash = md5($tmp);
Запрос DCC xml:
<?xml version='1.0' encoding='UTF-8'?>
<request type='dccrate' timestamp='$timestamp'>
<merchantid>$merchantid</merchantid>
<account>$account</account>
<orderid>$orderid</orderid>
<amount currency='$currency'>$amountinCents</amount>
<card>
<number>$cardnumber</number>
<expdate>$expdate</expdate>
<type>$cardtype</type>
<chname>$cardname</chname>
<cvn>
<number>$cvvno</number>
<presind>1</presind>
</cvn>
</card>
<dccinfo>
<ccp>fexco</ccp>
<type>1</type>
<ratetype>S</ratetype>
</dccinfo>
<autosettle flag='1'/>
<md5hash>$md5hash</md5hash>
<tssinfo>
<address type=\"billing\">
<country>ie</country>
</address>
</tssinfo>
</request>
Auth запрос xml:
<?xml version='1.0' encoding='UTF-8'?>
<request type='auth' timestamp='".$timestamp."'>
<merchantid>".$merchantid."</merchantid>
<account>".$account."</account>
<orderid>".$orderid."</orderid>
<amount currency='".$currency."'>".$amountinCents."</amount>
<card>
<number>".$cardnumber."</number>
<expdate>".$expdate."</expdate>
<chname>".$cardname."</chname>
<type>$cardtype</type>
<cvn>
<number>".$cvvno."</number>
<presind>1</presind>
</cvn>
</card>
<autosettle flag='1' />
<md5hash>".$md5hash."</md5hash>
<dccinfo>
<ccp>fexco</ccp>
<type>1</type>
<rate>".$authrate."</rate>
<ratetype>S</ratetype>
<amount currency='".$curr."'>".$amountDcc."</amount>
</dccinfo>
</request>
И отправив оба xml наhttps://epage.payandshop.com/epage-remote.cgi«один за другим, используя curl, процесс оплаты работает нормально.
Но это не показывает всплывающее окно для клиента, чтобы выбрать валюту для взимания.
вот образец формы для проверка
Подскажите, пожалуйста, почему он не отображается или мне нужно внести какие-либо изменения?
Спасибо за ваш вопрос. Во-первых, как я уже упоминал в ответе на предыдущий вопрос, мы настоятельно рекомендуем использовать SHA1 вместо MD5 для хэша транзакции.
Кроме того, этот URL: https://epage.payandshop.com/epage-remote.cgi, является устаревшим, новые:
Живой URL — https://api.realexpayments.com/epage-remote.cgi
URL песочницы — https://api.sandbox.realexpayments.com/epage-remote.cgi
Могу я спросить, на какую документацию разработчика вы ссылаетесь? Я настоятельно рекомендую вам следовать инструкциям в соответствии с последним Realex Developer Hub. (Если есть проблема с концентратором, дайте мне знать).
Наконец, поскольку вы используете DCC через наш API, окно / страница, которую вы описываете, должно быть сгенерировано вашим приложением с использованием значений, возвращаемых из запроса на поиск DCC Rate. Это описано в шаге 2 здесь вместе с примером PHP: https://developer.realexpayments.com/#!/integration-api/dcc/php/html_js
Есть ли какая-то особая причина, по которой вы не используете нашу страницу размещенного платежа (HPP) для обработки транзакции? Он обрабатывает отображение выбора тарифа для клиента для вас. Вы также выиграете от сокращения объема PCI вашего приложения. Посмотреть здесь: https://developer.realexpayments.com/#!/hpp/dcc
Лучший,
Seán
Realex Payments
Других решений пока нет …