Задать вопрос

Почему PHP Yandex.Money API SDK при получении access_token возвращает NULL?

написал код для получения acces_token на чистом php,работало успешно,затем тот же код слегка адаптировал под yii2
в итоге code значение получаю,а access_token возвращает NULL, всю работу тестировал на локалке без https
почему то никаких ошибок не выводится,хотя должно, не подскажете в какую сторону копать? в чем может быть проблема?

<?php

private
function yandexParams()
{
    $ya['scope'] = array("account-info operation-history operation-details payment-p2p");
    $ya['redirect_uri'] = '';
    $ya['client_id'] = '';
    return $ya;
}

// http://site.loc/frontend/web/site/send-yandex-money
public
function actionSendYandexMoney()
{

    function human_print($var)
    {
        echo '<pre>';
        print_r($var);
        echo '</pre>';
        echo '<hr>';
    }


    $yandex = $this->yandexParams();
    $code = Yii::$app->request->get('code', '');
    // echo 'res yandex money';

    if (!empty($code)) {


        print_r($yandex);
        echo '<hr>';
        var_dump('code', $code);
        echo '<hr>';

//                $access_token_response = API::getAccessToken($client_id, $code, $redirect_uri, $client_secret);
//                $access_token_response = API::getAccessToken($client_id, $code, $redirect_uri, $client_secret = NULL);
        // $access_token_response = API::getAccessToken($yandex['client_id'], $code, $yandex['redirect_uri'],$yandex['client_secret']);

        $access_token_response = API::getAccessToken($yandex['client_id'], $code, $yandex['redirect_uri'], $client_secret = NULL);

        var_dump('$access_token_response', $access_token_response);
        echo '<hr>';

        if (property_exists($access_token_response, "error")) {
            // process error
            echo $access_token_response->error;
        }
        $access_token = $access_token_response->access_token;


        var_dump('$access_token', $access_token);
        echo '<hr>';

    } else {


//            $auth_url = API::buildObtainTokenUrl($client_id, $yandex['redirect_uri'], $yandex['scope']);
        $auth_url = API::buildObtainTokenUrl($yandex['client_id'], $yandex['redirect_uri'], $yandex['scope']);
//            var_dump($auth_url);
//            echo '<hr>';
        return $this->render('yandex-auth.php', [
            'auth_url' => $auth_url,
        ]);
    }


    /*********** views ************/
?>
    <form id = "auto-send-yandex-money2" method = "POST" target = "_blank" action = "<?php echo $auth_url;?>" >
    <input type = "submit" value = "Авторизация через Яндекс" >
</form >
  • Вопрос задан
  • 424 просмотра
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
копать в декомпозицию и итерации

ну там первое - сравнить данные при "работало" и "чуть подправили"
Ответ написан
Комментировать
@YourQuestion
SDK больше не поддерживается яндексом.
Ошибка в старых ссылках - запрос отправляется на https://sp-money.yandex.ru, а должен отправляться на https://money.yandex.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы