werkint / qiwi

QIWI SOAP 支付库

1.0.0 2013-06-30 15:33 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:45:06 UTC


README

请注意:我不提供支持!请自行承担风险使用。如果您在安装/配置过程中遇到问题,我可以帮助您,但请不要期望这是免费的。如果库中有错误,我很乐意接受您的pull请求。再次提醒:我不是为了第五次、第十次解释如何将其连接到您的托管环境而提供这个库,以及在哪里输入什么。我上传了一个免费的库,而不是我的个人时间。是的,如果您还需要发送支付,也有其他与QIWI交互的选项。关于这一点,请通过电子邮件联系我。

QIWI SOAP 支付库。

库的优势

  • 根本不需要考虑SOAP、WSDL等。一切都很简单。
  • 对于服务器,有签名验证,在更新状态后,将重新从服务器加载检查(如QIWI文档建议)。
  • PHPDoc和所有内容,这样更难出错。有些地方有额外的说明(在哪里出错)。
  • 状态被解码(代码 -> 文本)。
  • 已在packagist上,连接只需2分钟。
  • 与自动加载器正常工作。
  • PSR-2,代码更容易修改

哈勃: http://habrahabr.ru/post/162185 协议: https://ishop.qiwi.ru/docs/OnlineStoresProtocols_SOAP.pdf

客户端代码(开具发票)

<?php
namespace MyOwnMegaPrefix\Qiwi;

use MyOwnMegaPrefix\Settings,
    Werkint\Qiwi;

class MyQiwi extends Qiwi\Client
{
    protected $settings;

    public function __construct(
        Settings $settings // Нечто, что выдает нам настройки
    ) {
        $this->settings = $settings;

        parent::__construct(
            $this->settings->get('qiwi.login'),
            $this->settings->get('qiwi.pass')
        );
    }
}

服务器代码(接收QIWI请求)

use Werkint\Qiwi\ServerMethods\CheckBillResponse as QiwiBill;
$callback = function ($bill) use (&$myMegaService) {
    /** @var QiwiBill $bill */
    $row = $myMegaService->findByKey( // Ищем чек в нашей базе
        $bill->id
    );
    if (!$row) {
        throw new \Exception('Неправильный код чека');
    }
    $myMegaService->process($row); // Что-то делаем с этим
    return $myMegaService->status(); // Код возврата для сервера QIWI. 0 - все нормально
};
// Вызываем метод обработки запроса
$theQiwiObject->processRequest($callback);
// Если мы отдадим text/html, qiwi не пропустит платеж (да и вообще, надо протоколу следовать)
header('Content-Type: text/xml; charset=utf-8');