1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/TheNorthMemory-wechatpay-php

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 10:22 a96da73

Изменения в истории версий

1.4.10 (2024-09-11)

  • В клиенте на асимметричном шифровании RSA больше не поддерживается режим заполнения OPENSSL_PKCS1_PADDING для OpenSSL, см. подробности здесь;
  • Добавлена аннотация параметра #[\SensitiveParameter], усилена информационная безопасность;
  • Поддержка PHP8.4 во время выполнения.

1.4.9 (2023-11-21)

  • Поддержка среды выполнения PHP8.3.

1.4.8 (2023-01-05)

  • Новая логика обработки ответа для специальной логики загрузки зарубежных счетов /v3/global/statements;

1.4.7 (2022-12-06)

  • Официальная поддержка PHP8.2:
    • Для OpenSSL3.0 были внесены некоторые изменения в расширение ext-openssl, константа RSA_SSLV23_PADDING была удалена (подробности см. в openssl/openssl#14216, openssl/openssl#14283). PHP сделал совместимую обработку, если расширение зависит от OpenSSL3.0, то соответствующая константа OPENSSL_SSLV23_PADDING не будет существовать, что повлияет на покрытие тестовых случаев «смешанного режима заполнения асимметричного шифрования» (подробнее см. shivammathur/setup-php#658). Эта библиотека не поддерживает этот режим заполнения, тестовые утверждения для OPENSSL_SSLV23_PADDING удалены, обеспечивается обратная совместимость;
    • Уведомление об устаревании динамических свойств объектов (Deprecate dynamic properties), эта библиотека создаёт экземпляр ArrayIterator, который является «псевдо» структурой динамического свойства объекта, доступ к свойствам объекта фактически осуществляется через __storage атрибут ArrayObject, а не через динамические свойства. Это уведомление об устаревании не влияет на эту библиотеку.

1.4.6 (2022-08-19)

  • На APIv2 удалены предупреждения trigger_error, чтобы избежать ненужного беспокойства;
  • Оптимизирован метод Transformer::walk для поддержки преобразования значений объектов Stringable.

1.4.5 (2022-05-21)

  • Новый механизм проверки подписи запроса/ответа APIv3, автоматическая игнорирование проверки для двух внутренних интерфейсов загрузки, проверка только RSA подписи для зарубежных интерфейсов загрузки торговых счетов, см. #94;
  • Новые тестовые случаи APIv3 для загрузки торговых счетов за рубежом, демонстрирующие, как проверить поток SHA1 дайджеста.

1.4.4 (2022-05-19)

  • Новые тестовые примеры APIv3 для скачивания изображений жалоб, демонстрируют, как избежать проблемы с двойным процентным кодированием;
  • Функция hash в PHP изменила логику возвращаемого значения в PHP8, вместо этого генерируется исключение ValueError, оптимизированы тестовые примеры MediaUtilTest для совместимости с PHP7;
  • Белый список URL и изменённая логика проверки APIv2, запросы в белом списке автоматически игнорируют проверку, см. #92;

1.4.3 (2022-01-04)

  • Строго ограничено, что mchid при инициализации является строкой;
  • Строго ограничен, что chain при вызове функции является строкой;
  • README дополнен примером использования шаблона URL для иллюстрации использования.

1.4.2 (2021-12-02)

  • Улучшена логика анализа Rsa::parse, исключена проверка is_resource/is_object;
  • Изменена реализация синтаксического сахара для Rsa::from[Pkcs8|Pkcs1|Spki], унифицирован вход через Rsa::from;
  • Улучшен процесс обработки ClientDecorator::request[Async], приоритет замены переменных шаблона URI, поддерживается вызов интерфейса с использованием короткого соединения.

1.4.1 (2021-11-03)

  • Добавлена поддержка phpstan/phpstan:^1.0;
  • Устранены небезопасные вызовы частных методов или свойств через static:: внутри функций.

1.4.0 (2021-10-24)

  • Guzzle понижен до версии v6.5.0 или выше, PHP понижен до 7.1.2 или выше, см. №71519;
  • PHPUnit понижен до v7.5.0||v8.5.16||v9.3.5, см. №4663.

Более подробную информацию можно найти в руководстве по обновлению с 1.3 до 1.4. Обновление функции Rsa::from для замены PemUtil::loadPrivateKey

  • Добавлена функция Rsa::from, которая заменяет PemUtil::loadPrivateKey.
  • Добавлены синтаксические сахарные функции Rsa::fromPkcs1, Rsa::fromPkcs8 и Rsa::fromSpki для поддержки загрузки RSA-ключей из облака.
  • Добавлена функция преобразования формата открытого ключа RSA Rsa::pkcs1ToSpki, принимающая на вход строку в формате base64.
  • Функции PemUtil::loadPrivateKey и PemUtil::loadPrivateKeyFromString помечены как нерекомендуемые к использованию.
  • Подробные изменения можно найти в руководстве по обновлению версии 1.1 до версии 1.2 (UPGRADING.md).

Изменения в версии 1.1.4

  • Оптимизировано использование инструмента для загрузки сертификатов платформы, добавлена информация о выполнении команды composer exec.
  • Немного улучшена структура кода, что сделало логику более понятной.

Изменения в версии 1.1.3

  • Улучшен файл README, добавлены инструкции по обработке обратных уведомлений и примеры кода.
  • Улучшены тестовые сценарии использования, ссылки на встроенные функции системы теперь используют строгое наименование.
  • Улучшен Makefile, чтобы избежать создания сертификатов с серийными номерами, начинающимися с 0x00, при создании фиктивных сертификатов.
  • Обновлён файл composer.json, добавлен guzzlehttp/uri-template:^1.0.

Изменения в версии 1.1.2

  • Улучшен README, термины, связанные с ключами и сертификатами, теперь согласованы.
  • Дополнено руководство по миграции с php_sdk_v3.0.10 в разделе UPGRADING.
  • Улучшены тесты, обеспечено полное покрытие PHP7.2/7.3/7.4/8.0 + Linux/macOS/Windows во время выполнения.
  • В файле composer.json удалены команды test и phpstan, что делает его более подходящим для производственной среды.

Изменения в версии 1.1.1

  • Внутренняя промежуточная программа всегда получает значение из \GuzzleHttp\Psr7\Stream::__toString и проверяет, влияет ли это на указатель потока. Если влияет, то возвращается к началу.
  • Приведены дополнительные примеры использования APIv2 и пример подписи данных.
  • В документации APIv2 добавлено напоминание DEP_XML_PROTOCOL_IS_REACHABLE_EOL.
  • Исправлена проблема с интерфейсом перевода средств на нулевой баланс пользователя в APIv2, вызванная mchid в XML-входе.
  • Для интерфейса перевода средств на нулевой баланс пользователя в APIv2 добавлены тестовые примеры, демонстрирующие, как обрабатывать исключения.

Изменения в версии 1.1.0

  • Изменён порядок внутренних промежуточных программ и проведена детальная проверка нормальных ответов (20X) от APIv3, при возникновении логических ошибок используется \GuzzleHttp\Exception\RequestException, который может быть перехвачен на стороне приложения.
  • Ответы 30X и 4XX, 5XX обрабатываются базовыми промежуточными программами Guzzle, конкретные методы и использование см. в \GuzzleHttp\RedirectMiddleware и \GuzzleHttp\Middleware::httpErrors.
  • Подробное описание изменений можно найти в руководстве по переходу с версии 1.0 на версию 1.1 (UPGRADING.md).

Изменения в версии 1.0.9

  • Устранена логическая ошибка обработки исключений в CertificateDownloader, подробнее см. #22.
  • Усовершенствована обработка исключений в примерах использования в README.

Изменения в версии 1.0.8

  • Метод WeChatPay\Crypto\Hash::equals добавлен для сравнения значений хеш-подписей APIv2.
  • Рекомендуется использовать этот метод для проверки подписей в сценариях обратных уведомлений APIv2. Дополнительную информацию см. в описании PHP hash_equals.

Изменения в версии 1.0.7

  • Фабричные методы APIv3 и APIv2 полностью документированы, рекомендуется использовать APIv3.

Изменения в версии 1.0.6

  • Алгоритм Formatter::nonce изменён для использования random_bytes для генерации случайных строк BASE62.

Изменения в версии 1.0.5

  • Весь код ядра перенесён в строгий режим типов declare(strict_types=1).
  • Порядок заголовков Authorization изменён, в режиме отладки сначала отображаются ключевые данные.
  • Чтение файлов в классе MediaUtil оптимизировано для двоичного чтения, чтобы предотвратить проблемы с межплатформенным вмешательством.
  • Тестовые примеры расширены для покрытия использования APIv2.

Изменения в версии 1.0.4

  • Исправлено неправильное поведение сегментов при использовании заглавных букв.
  • Если обработчик предоставляется в качестве начального аргумента, он передаётся нижестоящему клиенту.
  • Указана минимальная версия PHP, связанная с проблемой #10.
  • Все тестовые случаи для APIv3 полностью покрыты.

Изменения в версии 1.0.3

  • Выполняется первоначальная проверка jsonBased, структуры данных, содержащие ключи «платформа» и «сертификат», не должны содержать ключ «последовательность». Связано с проблемой №8.
  • Ошибки в документации исправлены, связано с проблемой №7.
  • Действия GitHub оптимизированы для работы с PHP7.2, PHP7.3+ может работать с PHPUnit8, а PHP7.2 — только с PHPUnit9.
  • Команда composer test добавлена и интегрирована в CI (тестовые случаи постоянно добавляются).
  • Оставшиеся проблемы PHPStan устранены.

Изменения в версии 1.0.2

  • Некоторая оптимизация производительности.
  • Поддержка действий GitHub для PHP7.2/7.3/7.4/8.0 + Linux/macOS/Windows.
  • Уровень phpstan повышен до level8, самого строгого уровня, и устранено множество оставшихся проблем.
  • Исключения WeChatPayException улучшены.
  • Документация и использование средства загрузки сертификатов улучшены.

Изменения в версии 1.0.1

  • Некоторые оптимизации производительности.
  • Множество оставшихся проблем статического анализа phpstan level6 устранено.
  • Новый интерфейс исключений WeChatPayException.
  • Документы и сигнатуры методов улучшены.

Изменения в версии 1.0.0

Исходный код взят из wechatpay-guzzle-middleware и несовместим с исходным кодом. Начиная с версии v1.0.0, он больше не совместим с исходной версией.

  • APIv2 & APIv3 унифицированы для вызова SDK, по умолчанию используется версия APIv3.
  • APIv2 помечен как не рекомендуемый к вызову, ожидается, что v2.0 удалит его.
  • Поддерживаются синхронные (sync) (по умолчанию) и асинхронные (async) запросы к серверному интерфейсу.
  • Цепочка запросов к серверному интерфейсу поддерживается.
1
https://api.gitlife.ru/oschina-mirror/TheNorthMemory-wechatpay-php.git
git@api.gitlife.ru:oschina-mirror/TheNorthMemory-wechatpay-php.git
oschina-mirror
TheNorthMemory-wechatpay-php
TheNorthMemory-wechatpay-php
main