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

Сделать запрос QIWI API на PHP?

QIWI не так давно сделали новый API https://developer.qiwi.com/ru/qiwi-wallet-personal...

Как сделать авторизацию и простейший запрос через PHP?

Там нужны какие-то заголовки, я ввёл их, но не знаю, правильно ли, и как сделать запрос к API по определённым параметрам? Мой го*нокод таков:


<?php

header('Accept: application/json');
header('Content-Type: application/json');
header('Authorization: Bearer (тут токен юзера)');

$qiwi_page = file_get_contents('https://edge.qiwi.com/person-profile/v1/profile/cu...<тут параметр>');
echo $qiwi_page;

?>


Мой код не работает.
  • Вопрос задан
  • 6226 просмотров
Подписаться 3 Простой 5 комментариев
Решения вопроса 1
Вот для примера wrapper для api
class QiwiApi {
    private $_phone;
    private $_token;
    private $_url;
 
    function __construct($phone, $token) {
        $this->_phone = $phone;
        $this->_token = $token;
        $this->_url   = 'https://edge.qiwi.com/';
    }
    private function sendRequest($method, array $content = [], $post = false) {
        $ch = curl_init();
        if ($post) {
            curl_setopt($ch, CURLOPT_URL, $this->_url . $method);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($content));
        } else {
            curl_setopt($ch, CURLOPT_URL, $this->_url . $method . '/?' . http_build_query($content));
        }
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Accept: application/json',
            'Content-Type: application/json',
            'Authorization: Bearer ' . $this->_token
        ]); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($ch);
        curl_close($ch);
        return json_decode($result, 1);
    }
    public function getAccount(Array $params = []) {
        return $this->sendRequest('person-profile/v1/profile/current', $params);
    }
    public function getPaymentsHistory(Array $params = []) {
        return $this->sendRequest('payment-history/v1/persons/' . $this->_phone . '/payments', $params);
    }
    public function getPaymentsStats(Array $params = []) {
        return $this->sendRequest('payment-history/v1/persons/' . $this->_phone . '/payments/total', $params);
    }
    public function getBalance() {
        return $this->sendRequest('funding-sources/v1/accounts/current')['accounts'];
    }
    public function getTax($providerId) {
        return $this->sendRequest('sinap/providers/'. $providerId .'/form');
    }  
    public function sendMoneyToQiwi(Array $params = []) {
        return $this->sendRequest('sinap/terms/99/payments', $params, 1);
    }
    public function sendMoneyToProvider($providerId, Array $params = []) {
        return $this->sendRequest('sinap/terms/'. $providerId .'/payments', $params, 1);
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Qiwi api class php: https://culabra.ru/qiwi-api-class-php-klass-dlya-r...Примеры работы с ним, инструкция по подключению и т.п. есть и на гите и на моем сайте. Версия обновляется по мере необходимости. Если есть предложения или вопросы пишите, решим всё:)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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