Назад

VibeFox PayU India for WooCommerce — Помощь

Требования

WordPress: 5.8 или новее.

WooCommerce: 6.0 или новее, установлен и активен. Плагин не активируется без него; если WooCommerce отключить позже, плагин не выполняет никаких действий и показывает уведомление в панели управления.

PHP: 8.0 или новее.

Store currency: индийская рупия (INR). PayU India принимает оплату только в рупиях. При использовании других валют способ оплаты скрывается при оформлении заказа.

Phone number: PayU требует номер телефона для каждого платежа. Сделайте поле телефона обязательным или хотя бы видимым при оформлении заказа.

PayU India account: вам понадобятся Merchant Key и Merchant Salt (v1) из раздела PayU Dashboard > Payment Gateway > Key Salt Details. Переключите панель управления в Test Mode, чтобы увидеть тестовую пару. Используйте Salt v1, а не Salt v2.

Internet access to your site: требуется для дополнительного вебхука. Без него заказы подтверждаются, когда покупатель возвращается из PayU.

VibeFox license key: покупается на vibefox.net. Один ключ работает на одном домене.

Установка

1. В WordPress перейдите в Plugins > Add New > Upload Plugin, выберите ZIP-файл плагина и нажмите Install Now. Вы также можете загрузить папку wcp_payu_india_payment в /wp-content/plugins/ по FTP.

2. Нажмите Activate.

3. Откройте настройки: WooCommerce > Settings > Payments > PayU India > Manage или нажмите Settings под названием плагина на странице Plugins.

4. Введите лицензионный ключ VibeFox в блок лицензии вверху страницы и нажмите Activate.

5. Введите тестовые Merchant Key и Salt, а также рабочие Merchant Key и Salt (см. «Настройка»).

6. Рекомендуется: в разделе PayU Dashboard > Webhooks укажите URL вебхука, отображаемый на странице настроек, для успешных и неудавшихся платежей.

7. Выберите Mode и включите Enable/Disable. Протестируйте платёж в режиме Test, затем переключитесь на Live.

Настройка

Все настройки находятся на одной странице: WooCommerce > Settings > Payments > PayU India. Над полями страница предупреждает, если отсутствует ключ или salt текущего режима, показывает Test mode is active: payments go to test.payu.in and no real money is charged. в режиме Test и предупреждает, если валюта магазина отличается от INR (в этом случае шлюз скрывается при оформлении заказа).

При сохранении из ключей и salt удаляются пробелы и переносы строк, поскольку случайно вставленный пробел приведёт к сбою проверки любого ответа PayU.

Общие

Enable/Disable: Enable PayU India Payment Gateway включает или выключает способ оплаты. По умолчанию: отключено.

Title: название способа оплаты, которое покупатель видит при оформлении заказа. По умолчанию: PayU India.

Description: описание способа оплаты, которое покупатель видит при оформлении заказа. По умолчанию: Pay securely via Credit/Debit Card, NetBanking, UPI, or Wallets through PayU.

Учётные данные API

Скопируйте Merchant Key и Merchant Salt (v1) из PayU Dashboard > Payment Gateway > Key Salt Details. Переключите панель управления в Test Mode для получения тестовой пары.

Mode: какая среда PayU используется для новых платежей.

Test (Sandbox): использует тестовые ключ и salt, а также адрес test.payu.in. Реальные деньги не списываются. При оформлении заказа к описанию добавляется TEST MODE: no real money is charged. (по умолчанию).
Live (Production): использует рабочие ключ и salt, а также адрес secure.payu.in.

Возвраты средств всегда направляются в тот режим, в котором был совершён платёж.

Live Merchant Key: ваш рабочий Merchant Key PayU.

Live Merchant Salt (v1): ваш рабочий Merchant Salt (v1) PayU. Он подписывает запросы и проверяет ответы PayU. Храните его в секрете.

Test Merchant Key: ваш тестовый Merchant Key PayU, используется только в режиме Test.

Test Merchant Salt (v1): ваш тестовый Merchant Salt (v1) PayU, используется только в режиме Test.

URL возврата и вебхука

Return URL: имеет вид https://your-site/wc-api/payu_p_callback/. Отправляется в PayU автоматически при каждом платеже; настраивать вручную ничего не требуется.

Webhook URL: имеет вид https://your-site/wc-api/payu_p_webhook/. Необязательно, но рекомендуется: подтверждает платежи, даже если покупатель закрыл браузер до возврата на сайт. Добавьте его в PayU Dashboard > Webhooks для успешных и неудавшихся платежей. Скопируйте URL в точности так, как он указан на странице настроек.

Дополнительно

Verify Payment: Double-check every successful payment with the PayU verify_payment API. Рекомендуется. Если проверку не удаётся завершить, заказ переводится в статус «На удержании» вместо отметки об оплате. По умолчанию: включено.

Enable Logging: Log gateway events for troubleshooting. Записывается в WooCommerce > Status > Logs, источник wcp_payu_india_payment. Ошибки и предупреждения записываются всегда; эта опция добавляет остальные события. Ключи, salt и персональные данные клиентов никогда не сохраняются в журнале. По умолчанию: отключено.

Delete data on uninstall: Delete the plugin settings and logs when the plugin is deleted (orders are never deleted). По умолчанию: отключено.

Оформление заказа

Покупатель выбирает способ оплаты (по умолчанию PayU India) и размещает заказ. Если в заказе не указан платёжный телефон (или телефон для доставки), покупатель видит сообщение PayU India requires a phone number. Please enter your phone number and try again. В противном случае покупатель переходит на короткую страницу Thank you for your order. You will be redirected to PayU to complete your payment., которая отправляет подписанный запрос на оплату на размещённую страницу PayU. Там покупатель оплачивает картой, через NetBanking, UPI или кошелёк.

Каждая страница оплаты получает собственный идентификатор транзакции PayU, сохраняемый в заказе вместе с суммой и режимом. Платёж, совершённый на ранее открытой странице оплаты того же заказа, по-прежнему принимается. Оплаченный, удерживаемый или отменённый заказ никогда не получает новую платёжную форму, поэтому кнопка «Назад» в браузере не может запустить повторную оплату.

PayU возвращает результат вместе с покупателем и, если настроено, через вебхук. Результат принимается только при наличии корректного хеша PayU, сформированного с ключом и salt того режима, в котором был начат платёж, и только для идентификатора транзакции, выданного для этого заказа. При включённой опции Verify Payment успешный результат дополнительно проверяется через API verify_payment от PayU. Оплаченная сумма должна до пайсы совпадать с суммой заказа в INR. Заказ отмечается оплаченным только после того, как PayU подтвердит его таким способом. Плагин обрабатывает следующие результаты PayU:

success: платёж совершён. Заказ отмечается оплаченным после успешного прохождения всех проверок.
pending: платёж через UPI или NetBanking ещё обрабатывается. Заказ переводится в статус «На удержании»; окончательный результат поступает через вебхук.
failure: платёж отклонён или отменён покупателем. Неоплаченный заказ, ожидающий этот платёж, переводится в статус «Не удался». Оплаченные заказы никогда не изменяются.

После успешного или ожидающего платежа покупатель видит страницу «Заказ получен». После неудавшегося платежа покупатель возвращается к оформлению заказа с сообщением: Payment was not completed. Please try again or choose a different payment method., Payment was cancelled. You may try again. или, если результат не удалось проверить, We could not confirm the payment result. If your account was charged, please contact us before paying again. Эти сообщения работают как при классическом оформлении заказа, так и в блоке оформления заказа.

Способ оплаты работает при классическом оформлении заказа, в блоке оформления заказа и на странице Pay for order. Он совместим с высокопроизводительным хранилищем заказов WooCommerce (HPOS).

Плагин списывает средства только в INR и не поддерживает мультивалютную обработку (MCP). В нём нет сохранения карт и токенизации, нет WooCommerce Subscriptions, нет встроенной формы карты на сайте (seamless), нет управления EMI или специальными предложениями и нет оплаты в один клик PayU.

Заказы и возвраты

Статусы заказа

Pending payment: покупатель был направлен в PayU и ещё не совершил оплату.

Processing: платёж подтверждён. В примечании к заказу указаны идентификатор транзакции PayU (mihpayid), режим оплаты и код банка. Идентификатором транзакции заказа становится PayU mihpayid. Заказы, содержащие только виртуальные загружаемые товары, переходят в статус «Выполнен», как это делает WooCommerce по умолчанию.

On hold: платёж всё ещё ожидает обработки в PayU (UPI или NetBanking), оплаченная сумма или валюта отличаются от заказа, API verify_payment оказался недоступен или ещё не подтвердил платёж, либо поступила оплата за ранее отменённый заказ. В примечании к заказу указана причина. Проверьте транзакцию в PayU Dashboard и подтвердите или верните её. Если проверка завершилась сбоем, заказ будет подтверждён автоматически при следующей доставке результата.

Failed: платёж отклонён или отменён. Покупатель может повторить попытку оплаты.

Если PayU сообщает о ещё одном успешном платеже по уже оплаченному заказу, в примечании содержится просьба вернуть дубликат в PayU Dashboard.

Возвраты

Откройте заказ, нажмите Refund, введите сумму и нажмите Refund via PayU India (на кнопке отображается ваш Title). Поддерживаются полные и частичные возвраты; сумма должна быть больше нуля. Возврат отправляется через API возвратов PayU с ключом и salt того режима, в котором был сделан платёж, поэтому эти учётные данные должны быть настроены. Если PayU отклоняет возврат, WooCommerce отображает сообщение PayU, и возврат не фиксируется.

PayU ставит возвраты в очередь и обрабатывает их асинхронно; покупатель обычно получает средства в течение 5–7 рабочих дней. В примечании к заказу указываются сумма, идентификатор запроса PayU и причина. Плагин не проверяет статус возврата в дальнейшем.

Лицензионный ключ

Плагин работает с лицензионным ключом VibeFox с vibefox.net. Блок лицензии находится вверху страницы WooCommerce > Settings > Payments > PayU India. Вставьте ключ в License key и нажмите Activate. В блоке отображается статус, например срок действия лицензии и ваш домен. Используйте Check now для повторной проверки статуса, Change key для ввода другого ключа и Remove key для его удаления с этого сайта. Ссылка Manage licenses and domains in your account открывает ваш аккаунт на vibefox.net.

Один ключ действует на одном домене. Удаление ключа с сайта не освобождает слот домена. Освободите слот в вашем аккаунте на vibefox.net.

Без активного ключа PayU India не отображается покупателям при оформлении заказа. Если платёж всё же запущен, покупатель видит сообщение This payment method is not available. Please choose another one. Авторизованные администраторы магазина продолжают видеть способ оплаты с пометкой (unlicensed — visible to admins only), чтобы вы могли настроить и протестировать плагин до покупки ключа. Напоминание отображается на странице Plugins и на страницах WooCommerce. Существующие заказы не затрагиваются: уже начатые платежи подтверждаются, а возвраты работают.

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

Устранение неполадок

PayU India does not appear at checkout: убедитесь, что лицензия активна, опция Enable/Disable включена, а ключ и salt для выбранного Mode заполнены. Убедитесь, что валюта магазина (или валюта заказа на странице «Pay for order») — INR. На странице настроек отображается предупреждение для каждой из этих проблем.

The payment went through, but the order stays Pending payment: покупатель не вернулся в магазин, и вебхук не поступил. Добавьте URL вебхука из настроек в разделе PayU Dashboard > Webhooks для успешных и неудавшихся платежей и убедитесь, что он доступен из Интернета.

Webhook answers invalid_signature: хеш PayU не совпал. Проверьте правильность ключа и salt для режима платежа, а также то, что используется Salt v1, а не Salt v2. Заказ при этом не изменяется.

Webhook answers not_configured: отсутствует ключ или salt для режима, в котором был начат платёж. Укажите их; PayU повторит отправку вебхука.

Webhook answers verify_unavailable: API verify_payment пока не смог подтвердить платёж. Заказ находится на удержании, а при следующей доставке проверка будет выполнена повторно.

The customer sees PayU India requires a phone number: сделайте поле телефона обязательным или видимым при оформлении заказа. Используется платёжный телефон или телефон для доставки, если заполнен только он.

The order is On hold: ознакомьтесь с примечанием к заказу. Причина может заключаться в ожидании платежа UPI или NetBanking, несовпадении суммы или валюты, неудачной или ожидающей проверке либо в поступлении оплаты по отменённому заказу.

Refund fails: сообщение PayU transaction ID not found for this order. означает, что в заказе отсутствует платёж PayU. Сообщение о том, что Merchant Key/Salt для режима платежа не заданы, означает, что вам необходимо сначала ввести учётные данные для этого режима.

Too little in the log: ошибки и предупреждения записываются всегда; включите Enable Logging, чтобы видеть также каждый запрос и результат от PayU.

Developer hooks: фильтр payu_p_request_fields изменяет поля запроса на оплату до их подписания; фильтр payu_p_icon изменяет значок при оформлении заказа.

The license block shows an error: следуйте указаниям в блоке. Например, если ключ уже используется на другом домене, освободите слот в аккаунте vibefox.net и нажмите Check now. Если адрес сайта изменился, нажмите Check now, чтобы активировать ключ для нового домена. Если сервер лицензий недоступен, плагин продолжает работать с последним известным статусом.

Удаление

Деактивация плагина сохраняет все данные. Чтобы полностью удалить плагин, деактивируйте и удалите его на странице Plugins. Лицензионный ключ и статус лицензии этого плагина удаляются всегда. Настройки шлюза и журналы плагина (файлы журналов и записи в журнале базы данных WooCommerce) удаляются только в том случае, если была включена опция Delete data on uninstall. В противном случае они сохраняются для последующей повторной установки. В существующих заказах сохраняются примечания к оплате, идентификаторы транзакций PayU и идентификаторы запросов на возврат.

PayU является товарным знаком соответствующего правообладателя. Этот плагин не связан с PayU и не одобрен ею.