Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2014, 11:57   #1
Tyoma5891
Пользователь
 
Регистрация: 16.08.2013
Сообщений: 54
По умолчанию POST/cart покупка на яндексе

Добрый день, всем!
реализую апи покупку на яндекс маркете не могу понять почему на ихнем сервисе в режиме отладки тестовом получаю ошибку? делаю все как по документации
https://github.com/nixsolutions/yand...et-for-Partner

сделал на фтп у себя на сайте где магазин путь
https://сайт.com/market/api
в корне папки api сделал файл index.php вот его код:
PHP код:
<?php
require_once 'phar://yandex-sdk_master.phar/vendor/autoload.php';
use 
Yandex\Market\MarketClient;
//
$market = new MarketClient('ххххххххх');
$market->setClientId('ххххх');
//логин, указанный при регистрации в партнерском интерфейсе
$market->setLogin('хххххххх');

$postCartJson file_get_contents("php://input");
$cartRequest = new \Yandex\Market\Models\PostCartRequest();
$cartRequest->fromJson($postCartJson);
$currency $cartRequest->getCart()->getCurrency();
$requestedItems $cartRequest->getCart()->getItems();

//Ответ магазина на запрос от Яндекс.Маркета
$postCartResponse = new \Yandex\Market\Models\PostCartResponse();
//Корзина
$cart = new \Yandex\Market\Models\CartResponse();

//Товары в корзине
$items = new \Yandex\Market\Models\Items();
/** @var Yandex\Market\Models\Item $requestedItem */
foreach ($requestedItems as $requestedItem) {
    
//Информация о товаре в корзине.
    
$item = new \Yandex\Market\Models\Item();
    
$item->setFeedId((int)$requestedItem->getFeedId());
    
$item->setOfferId($requestedItem->getOfferId());
    
$item->setPrice(300);
    
$item->setCount($requestedItem->getCount());
    
$item->setDelivery(true);
    
$items->add($item);
}
$cart->setItems($items);

//Способы оплаты, доступные для корзины.
$cart->setPaymentMethods(
    array(
        
//Способ оплаты заказа
        
MarketClient::PAYMENT_METHOD_CASH_ON_DELIVERY,
        
MarketClient::PAYMENT_METHOD_CARD_ON_DELIVERY,
    )
);

//Опции доставки, доступные для корзины.
$deliveryOptions = new \Yandex\Market\Models\DeliveryOptions();
//Информация о доставке #1
$deliveryOption1 = new \Yandex\Market\Models\DeliveryOption();
$deliveryOption1->setType(MarketClient::DELIVERY_TYPE_PICKUP);
$datesRange1 = new \Yandex\Market\Models\DatesRange();
$datesRange1->setFromDate(date('d-m-Y'));
$datesRange1->setToDate(date('d-m-Y'mktime(000date("m"), date("d") + 3date("Y"))));
$deliveryOption1->setDates($datesRange1);
$deliveryOption1->setServiceName('СПСР');
$deliveryOption1->setPrice(0);
$deliveryOption1->setId("1");
//Информация о пункте самовывоза.
$outlets = new \Yandex\Market\Models\Outlets();
$outlet1 = new \Yandex\Market\Models\Outlet();
$outlet1->setId(9);
$outlet2 = new \Yandex\Market\Models\Outlet();
$outlet2->setId(10);
$outlet3 = new \Yandex\Market\Models\Outlet();
$outlet3->setId(11);
$outlets->add($outlet1);
$outlets->add($outlet2);
$outlets->add($outlet3);
$deliveryOption1->setOutlets($outlets);

//Информация о доставке #2
$deliveryOption2 = new \Yandex\Market\Models\DeliveryOption();
$deliveryOption2->setType(MarketClient::DELIVERY_TYPE_DELIVERY);
$datesRange2 = new \Yandex\Market\Models\DatesRange();
$datesRange2->setFromDate(date('d-m-Y'mktime(000date("m"), date("d") + 5date("Y"))));
$deliveryOption2->setDates($datesRange1);
$deliveryOption2->setServiceName('Собственная служба доставки');
$deliveryOption2->setPrice(350);
$deliveryOption2->setId("2");

$deliveryOptions->add($deliveryOption1);
$deliveryOptions->add($deliveryOption2);
$cart->setDeliveryOptions($deliveryOptions);

$postCartResponse->setCart($cart);

header('Content-Type: application/json');
echo 
$postCartResponse->toJson();
все как в документации

захожу на сервис ихний партренский в пункт отлакди апи покупок выбираю товар, нажимаю актуаилизировать и ошибка...
Произошла неизвестная ошибка API магазина. Подробности можно посмотреть в логе API.

в логах ошибка
:java.security.cert.CertificateExce ption: expected and actual fingerprints aren't the same. Expected:
но сертификаты и sha слепок указал правильные в настройках не могу понять в чем ошибка?

эта строка
$postCartJson = file_get_contents("php://input");
принимает от маркета запрос, а ответ как нужно тоже постом отправлять? через curl? почему то в доке об этом нету ни слова эти строки
header('Content-Type: application/json');
echo $postCartResponse->toJson();
отслыают казывая тип данных ноя так понимаю, что в ответе нужна ещё ссылка в которой мне нужно указывать свой токен и айди?

Последний раз редактировалось Tyoma5891; 22.10.2014 в 12:34.
Tyoma5891 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собеседование в Яндексе. stpdqstns Свободное общение 13 24.04.2013 14:46
JQZoom и CS-Cart HDMI WordPress и другие CMS 0 01.03.2013 19:35
Active Visual Cart в DMaster 007tar Свободное общение 0 21.02.2012 17:39
отключение регистрации в wordpress shopping cart ilma55 WordPress и другие CMS 0 24.01.2011 14:11