Comments (10)
Столкнулся с такой же проблемой, если повторить запрос в консоле через curl то там ещё приходит ответ который не видно в браузере
"{"status":"error","data":{"errors":{"hashValid":"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c."}},"error":"ERROR_WRONG_PARAMS"}"
если декодировать ошибку, то получим "Значение должно быть истинным."
По какой-то причине неправильно считается secret_key, проверил по алгоритму для хорошего у меня он сходится, а для запроса с Access-Control-Allow-Origin он не верный.
from cart-widget.
проблема в том что в некоторых случаях в options.params которые участвуют в расчете контрольной суммы остается secret_key от предыдущего запроса, а именно в него и записывается новая контрольная сумма и поэтому происходит расхождение при проверке запроса не сервере.
нужно либо принудительно удалять secret_key перед вызовом createKey() либо игнорировать этот элемент при расчете контрольной суммы.
from cart-widget.
распечатка options.params - 1-ая строка до вызова utils.createKey, вторая после, 3-ая это как раз сообщение о неправильном запросе от сервера.
from cart-widget.
И как камрады - есть решение?
from cart-widget.
проблема уже локализована и в ближайшем релизе будет фикс
from cart-widget.
Доброго времени суток! Появилось ли решение проблемы?
from cart-widget.
Примерно пол года назад была исправлена эта проблема
from cart-widget.
Уважаемый(ая) cramen
Могли бы Вы подсказать что я делаю не так
Я делаю вот такой запрос
$methodKey = '<ключ метода>';
$secret_key = md5(getPostValues($_POST) . $methodKey);
function getPostValues($data)
{
if (!is_array($data)) return $data;
ksort($data);
return join('', array_map(function($k){
return getPostValues($k);
}, $data));
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://delivery.yandex.ru/api/last/createOrder");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "client_id=данные&sender_id=данные&secret_key={$secret_key}&order_requisite=данные&order_warehouse=данные&order_num=Z987&order_weight=1&order_length=2&order_width=3&order_height=4&order_assessed_value=555&order_delivery_cost=321&is_manual_delivery_cost=1&order_amount_prepaid=200&order_shipment_date=2016-09-01&order_comment=Comment&recipient%5Bphone%5D=79991112233&recipient%5Bemail%5D=recipient%40example.com&recipient%5Bfirst_name%5D=79991112233&recipient%5Blast_name%5D=79991112233&order_items%5B0%5D%5Borderitem_name%5D=Sample+item&order_items%5B0%5D%5Borderitem_cost%5D=999&order_items%5B0%5D%5Borderitem_quantity%5D=1&order_items%5B0%5D%5Borderitem_article%5D=X590&deliverypoint%5Bcity%5D=%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&delivery%5B%5D=");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/x-www-form-urlencoded"
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
и получаю ответ
{
"status": "error",
"data": {
"errors": {
"hashValid": "Значение должно быть истинным."
}
},
"error": "ERROR_WRONG_PARAMS"
}
заранее спасибо!
from cart-widget.
Речь в тикете шла о виджете. Вы же воучную делаете запрос. В виджете доставка уже давно все починила. А как и зачем делать запрос на автокомплит вручную - это в техподдержку яндекс доставке
from cart-widget.
Спасибо!
Просто корзина своя пишется
from cart-widget.
Related Issues (14)
- Сбой при загрузке данных о пунктах самовывоза
- Не работает на iphone
- Поехала разметка в wiki HOT 2
- переинициализация виджета
- Ошибка при выборе Почты России: Uncaught TypeError: Cannot read property 'street' of null HOT 2
- Доставка почтой России. HOT 4
- Выбор той же курьерки с другим интервалом времени
- Ошибка при выполнении ydwidget.cartWidget.order.confirmOrder HOT 1
- Отображение виджета data-ydwidget-open HOT 2
- Добавить виджет в Покупку на Маркете
- Проблема с определением улицы
- При вызове виджета с заполненным автокомплитом городом выдает левый город
- Засыпает ошибками
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cart-widget.