Giter Club home page Giter Club logo

bill-payments-php-sdk's People

Contributors

jamaska avatar lale4ka avatar lar-dragon avatar meritaton avatar strixg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bill-payments-php-sdk's Issues

Ошибка оплаты

Привет, сделал форму для оплаты

`

$billPayments = new Qiwi(SECRET_KEY);

    $billId = $billPayments->generateId();

    $params = [

        'billId' => $billId,

        'publicKey' => PUBLIC_KEY,

        'amount' => 1,

        'successUrl' => route('checkout-qiwi', ['billId' => $billId])

    ];

    $link = $billPayments->createPaymentForm($params);

    echo "<a href=".$link.">test</a>";`

Перехожу по ссылке, ввожу данные карты, мне выдает ошибку "Операция отклонена", хотя до этого 2 раза нормально оплатилось, что случилось ?

При выставлении определенного 'lifetime' все равно пишется "Счет действителен месяц"

Здравствуйте, возникла ошибка при использовании API. Воспроивожу ситуацию, к примеру сейчас 2021-05-01T14:37 и мне надо чтобы счет был действителен всего 10 минут, то есть это строчка 2021-05-01T14:47. Пишу ее в 'lifetime' и пишется "Счет действителен месяц".

$params = [
  'publicKey' => $publicKey,
  'amount' => $money,
  'billId' => $billId,
  'comment' => 'Донат на счет '.$name,
  'lifetime' => '2021-05-01T14:47',
  'successUrl' => 'site here',
];

Авторизация и т.д. взяты из документации qiwi api

Ошибка оплаты выставленного счёта

При выставление счёта с помощью PUT запроса https://api.qiwi.com/partner/bill/v1/bills/{billid} - оплата картой проходит примерно в 10% случаях, в остальных получаем ошибку Платеж отклонен. Проверьте введенные реквизиты карты и повторите платеж." и почему он отклоняется"
Установление заголовка no-referrer-when-downgrade не помогло.
body запроса

{  
   "amount": {   
     "currency": "RUB",   
     "value": "1.00" 
   },
   "comment": "test",  
   "expirationDateTime": "2022-09-30T09:02:00+03:00",
   "customFields" : {
     "enableLowerCommission" : "true"
   }
 }

Скрин ошибки
image

getErrorHandlerResponse TCP connection reset by peer

Добрый день.

Недавно платежи перестали формироваться, хотя до этого все работало ОК...

Вылетает Exception при выполнении $response = $billPayments->createBill($orderId, $fields);

[message:protected] => TCP connection reset by peer
[string:Exception:private] =>
[code:protected] => 0

Кошелек не заблокирован. Статус - основной. Счета из ЛК формировать можно...

Меня что - фаервол начал блокировать? Помогите пожалуйста - в бот @qiwi_api_help_bot писал - нет ответа...

HTTP/1.1 401 Unauthorized

$QIWI_SECRET_KEY = env('QIWI_SECRET_KEY') ;
            $billPayments = new BillPayments($QIWI_SECRET_KEY);
            $billPayments->key = $QIWI_SECRET_KEY;
            $billId = $billPayments->generateId();

            $fields = [
                'amount' => round($price + $delivery_price,2),
                'currency' => 'RUB',
                'phone' => $form['phone'],
                'comment' => 'Заказ №"' . $order->id . '"',
                'expirationDateTime' => (new \DateTime(date("Y-m-d H:i:s")))->modify('+7 day')->format('c'),
            ];

            /** @var \Qiwi\Api\BillPayments $billPayments */
            $response = $billPayments->createBill($billId, $fields);

Пытаюсь создать счет на оплату таким образом, абсолютно этот же код работает в простом php файле. Сейчас делаю это в Laravel. Секретный ключ точно есть и передается.

Выдает ошибку "HTTP/1.1 401 Unauthorized" в /vendor/qiwi/bill-payments-php-sdk/src/BillPayments.php:592

Trace ведет на строку 463.

Может ли это быть связано с тем что я сейчас тестирую на другом домене(на том же сервере)?

Как переводить деньги?

Простите меня за, возможно, тупой вопрос, но как при помощи этой библиотеки передавать средства на QIWI/Карту?

HTTP/2 401

$billId = '772'
$billPayments = new \Qiwi\Api\BillPayments(self::SECRET_KEY);
$response = $billPayments->getBillInfo($billId);

return $response;

При обработке получаю ошибку
HTTP/2 401

checkNotificationSignature false каждый раз

Всем привет пытаюсь проверить хеш с заголовка
выдает false

$billPayments = new BillPayments(env("QIWI_SECRET"));


        $head = getallheaders(); 
        $sha256_hash_header = $head['X-Api-Signature-Sha256']; 
        $notificationData = [
            'bill' => [
                'siteId' =>  $request->input('bill.siteId'),
                'billId' => $request->input('bill.billId'),
                'amount' => [
                    'value' =>  $request->input('bill.amount.value'),
                    'currency' => $request->input('bill.amount.currency')
                    ],
                    'status' => [
                        'value' => $request->input('bill.status.value')
                    ]
            ],
            'version' => $request->input('version')
          ];  

        $check = $billPayments->checkNotificationSignature(
            $sha256_hash_header, $notificationData, base64_decode(env("QIWI_SECRET"))
        );  

Результат

$check === false;

Qiwi \ Api \ BillPaymentsException (400) HTTP/1.1 400 Bad Request

При попытке выставить счет, выдается эта ошибка. Не могу понять в чем проблема. Laravel

        $billPayments = new \Qiwi\Api\BillPayments(secret_key);

        $billId = $billPayments->generateId();
        $fields = [
            'amount' => '100',
            'currency' => 'RUB',
            'comment' => 'test',
            'expirationDateTime' => '2019-05-05T08:44:07',
            'account' => 'Aleksandr-...',
            'successUrl' => 'http://test.com/',
        ];

        $response = $billPayments->createBill($billId, $fields);

При работе класса, выдаёт только белый экран!

Приветствую уважаемые программисты!

Помогите пожалуйста решить проблему. Сразу скажу что с composer и Packagist сталкиваюсь впервые.
Проблема собственно в том, что при попытке сделать файл test.php с текстом из первого примера:

<?php

$publicKey = '2tbp1WQvsgQeziGY9vTLe9vDZNg7tmCymb4Lh6STQokqKrpCC6qrUUKEDZAJ7mvFnzr1yTebUiQaBLDnebLMMxL8nc6FF5zfmGQnypdXCbQJqHEJW5RJmKfj8nvgc';
$params = [
'publicKey' => $publicKey,
'amount' => 200,
'billId' => 'cc961e8d-d4d6-4f02-b737-2297e51fb48e',
'successUrl' => 'http://test.ru/',
];

/** @var \Qiwi\Api\BillPayments $billPayments */
$link = $billPayments->createPaymentForm($params);

echo $link;

?>

Выдаёт белый экран и ничего более.
Но если закоментировать строку $link, страница прогружается. PHP в проекте работает.

Мои действия по установке:

Установил nginx
Установил php-fpm
Установил composer в папку проекта
После чего проверил сайт и работу php! Все работает)
После чего в putty перешел в каталог с проектом.
Зашел в github ( qiwi/bill-payments-php-sdk )
Установил репозиторий командой - ( php composer.phar require qiwi/bill-payments-php-sdk ), все встало без ошибок!
Создал файл в корне сайта test.php с примером выше!
В начале скрипта подключил autoload.php (require "vendor/autoload.php";) - прочитал в интернете
После чего выставил права доступа ко всем файлам и папкам 777
Перехожу по пути: мой сайт/test.php
И ничего не работает, даже нет ошибок.

Помогите пожалуйста, заранее спасибо!

BillPaymentsException

Здравствуйте, теперь при попытке создать методом createBill вылетает исключение: BillPaymentsException.
Более подробное изучение вопроса показало, что метод PUT https://api.qiwi.com/partner/bill/v1/bills/ теперь отдаёт 405 Method Not Allowed, с таким body

{
    "serviceName": "payin-invoicing-api",
    "errorCode": "api.method-no-longer-supported",
    "description": "Данный метод больше не поддерживается. Если хотите продолжить использование данного API, свяжитесь с нами по адресу электронной почты [email protected]",
    "userMessage": "Данный метод больше не поддерживается. Если хотите продолжить использование данного API, свяжитесь с нами по адресу электронной почты [email protected]",
    "dateTime": "2022-09-09T14:22:50.811+03:00",
    "traceId": "acf705d6f4dc5f72"
}

Я слышал, что у QIWI должны были произойти изменения, но ни на странице API https://developer.qiwi.com/en/bill-payments/?shell#create, ни в инструкции, которая мне пришла, я не нашёл ничего конкретного. Так же не вижу изменений в данной библиотеке, подскажите, стоит ли ждать обновлений или можно уже делать их своими силами?
А может я просто чего-то не понимаю и всё намного проще?

UPD
Дополню, по адресу [email protected] я связался, но пока мне ничего не ответили, решил написать ещё и тут.

Invalid argument type

Code sample from README.md

$billId = 'cc961e8d-d4d6-4f02-b737-2297e51fb48e';
$fields = [
  'amount' => 1.00,
  'currency' => 'RUB',
  'comment' => 'test',
  'expirationDateTime' => '2018-03-02T08:44:07+03:00',
  'email' => '[email protected]',
  'account' => 'client4563',
  ];

/** @var \Qiwi\Api\BillPayments $billPayments */
$response = $billPayments->createBill($billId, $fields);

print_r($response);

Response:

A PHP Error was encountered
Severity: Warning

Message: json_decode() expects parameter 1 to be string, object given

Filename: src/BillPayments.php

Line Number: 600

Actually the respond is correct and valid but it is not a string. To avoid any conflicts i replace

json_decode($this->internalCurl->response, true);

with

json_decode(json_encode($this->internalCurl->response), true);

I guess you would consider this solution barbarian so I'm not going to commit it.

Wrong authentication data при попытки выполнить запрос с новым токеном

Следую инстуркциям из документации https://developer.qiwi.com/ru/payments/#api-format -> Авторизация

Отправляю запрос через CURL для тестирования работы

curl -v -X PUT -H "Accept: application/json" \
  -H "Authorization: Bearer c2af95eb-xxxx-xxxx-xxxx-29a34fa8d641" \
  -H "Content-type: application/json" \
  -H "Host: api.qiwi.com" \
  -d '{ "amount":{"value":1.00,"currency":"RUB"}, "expirationDateTime":"2023-01-31T23:58:24+03:00", "comment":"f" }' \
  https://api.qiwi.com/partner/payin/v1/sites/6jXXX-XX/bills/6452-43412-31

Получаю ответ

{"serviceName":"payin-core",
"errorCode":"auth.unauthorized",
"description":"Wrong authentication data",
"userMessage":"Wrong authentication data","dateTime":"2023-01-31T13:38:45.562324+03:00","traceId":"ff5a2742dca29a40"}

Следовательно до SDK дело даже не доходит потому что непонятно работает ли сам API qiwi . Ни один пример из документации не запустился.

При этом я пробовал в base64 переводить сам токен, т.к в примерах из документации он похож чем-то на base64.

При этом важный момент: заявка на подключении находится в статусе "На рассмотрении"

Может быть с этим связано странное поведение API?

При попытки получить информацию о чеке вылезает ошибка.

Запрашиваю информацию о чеке и вылетает ошибка

PHP Fatal error:  Uncaught Qiwi\Api\BillPaymentsException: HTTP/1.1 401 Unauthorized in /vendor/qiwi/bill-payments-php-sdk/src/BillPayments.php:592
Stack trace:
#0 /vendor/qiwi/bill-payments-php-sdk/src/BillPayments.php(487): Qiwi\Api\BillPayments->requestBuilder('640d989f-3a0f-4...')
#1 test.php(10): Qiwi\Api\BillPayments->getBillInfo('***')
#2 {main}
  thrown in /vendor/qiwi/bill-payments-php-sdk/src/BillPayments.php on line 592

Код:

require 'vendor/autoload.php';
$publicKey = '***';
const SECRET_KEY = '***';
$billPayments = new Qiwi\Api\BillPayments(SECRET_KEY);
$billId = '**';


/** @var \Qiwi\Api\BillPayments $billPayments */
$response = $billPayments->getBillInfo($billId);

print_r($response);

Как получить ответ после редиректа на страницу успешного платежа?

Я создаю через $billPayments->createBill($billId, $params); ссылку на оплату товара. После успешной оплаты, пользователя переводит на сайт site.domain/success.php. (На сайте qiwi для уведомлений установлена эта ссылка).
Вопрос: Как получить данные о платеже после оплаты? Только через billId? Или же qiwi может сам после оплаты отправить данные на сайт?

-- Вывод headers после успешной оплаты --

Array
(
    [connection] => keep-alive
    [accept-encoding] => gzip, deflate
    [accept-language] => ru
    [user-agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Safari/605.1.15
    [accept] => text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
    [upgrade-insecure-requests] => 1
    [host] => payment.sniffrx.ru
    [content-length] => 
    [content-type] => 
)

getBillInfo ошибка

Fatal error: Uncaught Qiwi\Api\BillPaymentsException: HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1) in /var/www/html/lk/src/BillPayments.php:596 Stack trace: #0 /var/www/html/lk/src/BillPayments.php(484): Qiwi\Api\BillPayments->requestBuilder('cbb19a4a-eb84-4...') #1 /var/www/html/lk/proxy_pay_status.php(24): Qiwi\Api\BillPayments->getBillInfo('cbb19a4a-eb84-4...') #2 {main} thrown in /var/www/html/lk/src/BillPayments.php on line 596

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.