GithubHelp home page GithubHelp logo

php-sdk's People

Contributors

2garin avatar agentsib avatar alexgx avatar lobster-tm avatar m16a1 avatar michaeltintiuc avatar nezhelskoy avatar unitpayservice avatar vadim-unitpay 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

php-sdk's Issues

global namespace

Здравствуйте. Не плохо было бы вынести UnitPay.php из глобального пространства имен. Это будет полезно в случае когда в проектах уже есть класс UnitPay используемый например для общих действий с разными ПС.

api method

Предлагаю в функцию UnitPay::api добавить автоматическое добавление параметра ip пользователя

Тестовый доступ

Правильно я понимаю, что тестовый ключ доступа не позволяет генерировать рабочую ссылку с помощью метода form (для адреса вида https://unitpay.money/pay/)?

Wrong signature

Обновился на версию 2.0.3 - стали сыпаться ошибки Wrong signature.
Откатился на 2.0.2 - все ок.

Invalid IP

UnitPay::checkHandlerRequest
Retrieving IP from $_SERVER['REMOTE_ADDR'] could lead to error while PROXY is being used on partner's site. For example: cloudflare.com.
It would be better to add optional $ip param to method and PROXY option in __constructor.

file_get_contents

Есть мнение, что делать запросы по https через функцию file_get_contents - это не лучшая идея. Предлагаю вместо этого использовать что-то вроде

	public function httpGetContents($url) {
		$curl = curl_init();

		curl_setopt($curl, CURLOPT_URL, $url);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

		$result = curl_exec($curl);
		curl_close($curl);

		return $result;
	}

The requested package unitpay/php-sdk could not be found

after adding to composer.json in require "unitpay/php-sdk":"master"
on composer update having this error

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package unitpay/php-sdk could not be found in any version, there may be a typo in the package name.

Исправьте генерацию оплаты

Когда подключал вашу систему, не мог получить параметры desc, sum, из-за того что в коде Unitpay.php, была обнаружена ошибка последовательности, то есть,
до изменения:

        $vitalParams = array(
            'account'  => $account,
            'currency' => $currency,
            'desc'     => $desc,
            'sum'      => $sum
        );
        $this->params = array_merge($this->params, $vitalParams);
 
        if ($this->secretKey) {
            $this->params['signature'] = $this->getSignature($vitalParams);
        }

        $this->params['locale'] = $locale;

после изменений:

       $vitalParams = array(
            'account'  => $account,
            'currency' => $currency,
            'desc'     => $desc,
            'sum'      => $sum
        );
 
        if ($this->secretKey) {
            $this->params['signature'] = $this->getSignature($vitalParams);
        }
 
        $this->params = array_merge($this->params, $vitalParams);
 
        $this->params['locale'] = $locale;

То есть поменял местами. Надеюсь исправите)

Composer require error

"require":{"unitpay/php-sdk":"master"}
Не будет работать.

Исправьте на
"require":{"unitpay/php-sdk":"dev-master"}

Баги и улучшения

  1. Домен, который
    $unitpay = new UnitPay($domain, $secretKey);
    вообще стоит назвать api domain или еще как, но только не Your domain, потому, что для клиентов your domain это их домен, домен магазина и никак не домен, к которому идут запросы на api unitpay

  2. Бага
    Уж не знаю где, но судя по всему на сервере помимо params['signature'] где-то вписывается еще и params['sign']
    Наверно достаточно давно уже.
    Как вы думаете, работает ли проверка сигнатуры с текущим описанным в документации алгоритмом? Нет, очевидно не работает.
    Зато где-то в соседнем проекте было найдено
    public function getSignature(array $params, $method = null)
    {

  •    unset($params['sign']); // вот эта строчка, добавление которой внезапно чинит проверку
      unset($params['signature']);
    
  1. Ключик который secretKey оказывается не один, их три. проекта, api и тестовый api.
    внезапно, они оказываются одинаковыми в плане имени переменной и надо просто вот тут
    $unitpay = new UnitPay($domain, $secretKey);
    во втором параметре их подбирать по одному, чтобы понять где (в смысле при создании платежа или проверке) и какой (из трех) ставить
    оказалось, их надо ставить в одном месте один, в другом - другой. 6 вариантов, их всего лишь перебрать...

Это все бы починить. И в документации тоже, но
п2. Критичный, как наверно видно, те хотелось бы его в первую очередь поправить и влить, чтобы работало без костылей.

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.