Проблема в интеграции GWT realex при регистрации новой карты
В моем приложении я использую realex для оплаты суммы. При этом я регистрировал нового пользователя с помощью realex, но после этого, когда я пытался добавить новую карту, я получал ответ от realex, что хэш Sha1 неверен. Я проверил структуру хэша sha1, это все Правильно, но все же я получаю эту ошибку. Если кто-нибудь знает это, пожалуйста, сообщите мне.
3 ответа
Может быть, вы пропустили любую точку в вашем методе генерации SHA1
Чк это.
Вы пытаетесь обработать новую транзакцию с карты? Правильные поля для использования в sha1hash:
timestamp.merchantid.orderid.amount.currency.payerref.chname.cardnumber
В новом запросе карты сумма и валюта будут пустыми, поэтому вы создадите строку, объединив другие значения, соединенные точками, например
20130312105733.yourclientid.yourorderid...yourpayerref.cardholdername.4242424242424242
Получите sha1hash этого (убедитесь, что вы конвертируете полученный хеш в строчные шестнадцатеричные буквы! Это важно, чтобы следующий шаг выполнялся так же, как это делает Realex)
fc63ee950d69f275a0d54927072e4d675133ccfd
(Не: FC63EE950D69F275A0D54927072E4D675133CCFD - ваша библиотека SHA1 может создавать хэши в верхнем регистре - вы должны преобразовать в строчные.)
Затем добавьте точку и свой секрет и снова хеш.
fc63ee950d69f275a0d54927072e4d675133ccfd.yoursecret
Получить:
112bf11fae62dc3116800b4a00457206dc2f1308
Опять же, убедитесь, что вы конвертируете в строчные шестнадцатеричные буквы, как у меня.
Оуэн
Убедитесь, что вы передаете правильные данные как параметры. В настоящее время я использую метод ниже, и он отлично работает на моем сайте..
$ today_timestamp:- текущая временная метка $merchant_id:- ваш merchantID $order_id: убедитесь, что вы передаете правильный идентификатор заказа и проверены с использованием правил, указанных в документации для разработчика. $ сумму:- текущая цена. Это должно быть полное число. пример: если пользователь хочет заплатить 4 доллара, то это должно быть 400.. валюта: в моем случае это GBP.
$sha1hash = $today_timestamp . "." . $merchant_id . "." . $order_id . "." . $amount . "." . $currency ;
$sha1hashed_string = sha1($sha1hash);
$string_with_shared_secret = $sha1hashed_string . "." . $shared_secret;
$sha1hash_string = sha1($string_with_shared_secret);