Я получил этот пример кода Java, что мне нужно преобразовать в PHPПреобразование MD5Bytes и GetBytes Java код PHP
JAVA
String rawStr = logistics_interface + signKey;
String data_digest = new String(Base64.encodeBase64(MD5Bytes(rawStr.getBytes("utf-8"))), "utf-8");
Я использовал этот PHP:
$rawStr = $logistics_interface . $signKey;
$data_digest = base64_encode(md5(utf8_encode($rawStr)));
Использование этих контрольных значений:
$logistics_interface = '<order>helloworld</order>';
$signKey = '123';
Мой PHP код дает:
ZWUwNGZmMWU2MTQ1NGRmOTcwN2U2ZmY3MmNlMjlkOTk=
Но мне говорят поставщиком API, что правильное значение $ data_digest должно быть:
7gT/HmFFTflwfm/3LOKdmQ==
ты герой. Спасибо. Он работает отлично. – Chris
@tkausl У меня есть вопрос, не могли бы вы мне помочь? В Java я вижу: 'System.out.println ("привет мир" .getBytes ("UTF-8"))' имеет результат '[B @ a67c67e' Как я могу иметь этот результат в PHP? Спасибо – Khaihkd
@Khaihkd Я не уверен, что вы пытаетесь сделать. '[B @ a67c67e' генерируется методом' toString' по умолчанию, это __not__ содержимое массива байтов. Попробуйте 'System.out.println (Arrays.toString (« hello world ».getBytes (« UTF-8 »)))' для печати массива. – tkausl