Разработка платёжного модуля для OpenCart

3 000 руб. за проект
07 августа 2019, 14:57 • 2 отклика • 28 просмотров
В админке CMS, в форме настройки модуля вводится 2 параметра:
  • Строка ID магазина из системы-эвайринга (строка до 32 символов)
  • Строка приватного ключа из системы-эвайринга (строка до 128 символов)
Страница оплаты в интернет-магазине должна выводить в <iframe> страницу платежного сервиса.
Формат адреса страницы оплаты (пример):
https://url.shop.com/p/[ShopID]/[OrderID]/[Amount]/[Hash]
Где:
  • ShopID – id магазина из системы-эвайринга (регистронезависимое)
  • OrderID – номер ордера из интернет-магазина/CMS (латиница без спец.символов и пробелов, регистронезависимое)
  • Amount – число, сумма по ордера (дробная часть через символ "." точка)
  • Hash – подпись ордера(регистронезависимое), формируется на стороне интернет-магазина (CMS). Пример на php: `$Hash = md5($PrivKey.";".$OrderID.";".$Amount);`

Скрипт для приема/обработки информации с системы-эвайринга (webhook).
Система передаёт следующую информацию в формате JSON:
`
{
"order_id": "fd-1240",
"status": "executed",
"hash" : "....."
}
`
Где:
  • order_id – номер ордера из интернет-магазина
  • hash - подпись, php: $Hash = md5($PrivKey.";".$OrderID.";executed");
  • status – может быть:
  • * "executed" – выполнен
  • * "opened" – открыт, не исполнен, в ожидание
  • * "canceled" – отменен
  • * "error#1023" – ошибка, через # номер ошибки

При отмене ордера в интернет-магазине должно срабатывать событие для отмены ордера в системе-эвайринга (/api/v1/cancelorder).
В админке интернет-магазина у ордера(заказа) должна быть кнопка ручной проверки статуса ордера в системе-эвайринга (/api/v1/checkorder).

API системы-эвайринга:
  • /api/v1/checkorder/[ShopID]/[OrderID] – проверка состояние ордера, ручная проверка для CMS
  • * Возвращаемые данные в JSON:
  • * {"status": "opened"}
  • * значения 'status' смотрите выше.
  • /api/v1/cancelorder/[ShopID]/[OrderID]/[Hash] – отменить Ордер (из *.CMS)
  • * Возвращаемые данные в JSON:
  • * {"status": "canceled"}
  • * значения 'status' может быть: закрыт->"canceled" или ошибка с номером её->"error#1234"
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
 
5 лет назад
R50 b9df6d175ecfc573446a6f73b23a1f37
Фрилансер
Работаем второй раз, все отлично)
5 лет назад