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

OSCHINA-MIRROR/qxinying-WePaySystem

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

WePaySystem

Введение

WePay — это система оплаты через авторизацию в WeChat, которая предоставляет API для сторонних систем. Она решает проблему, когда у одного и того же продавца есть несколько точек авторизации, но только один адрес обратного вызова. Сторонние системы могут использовать эту систему для авторизации через WeChat и получать соответствующую информацию после авторизации. Затем они могут использовать систему для оплаты через WeChat, получать платёжные уведомления и своевременно обрабатывать их.

Архитектура программного обеспечения

  1. Сторонняя система отправляет запрос на оплату в платёжную систему (/aspx/pay/wxpay.aspx).
  2. Платёжная система проверяет безопасность (включая соответствие параметров разработчика), а затем возвращает фактический адрес оплаты.
  3. После перехода по фактическому адресу оплаты и повторной проверки, если заказ нормальный, данные сохраняются в таблице WePayOrder.
  4. Вызывается оплата через WeChat. Номер заказа WeChat генерируется на странице и отправляется на сервер Tencent.
  5. Асинхронные и синхронные адреса обратного вызова настраиваются в зависимости от версии:
    • v1.0: устанавливаются асинхронные и синхронные обратные адреса соответствующей сторонней системы;
    • v2.0: устанавливается обратный адрес этой системы, после обработки обратного вызова отправляется уведомление сторонней системе.
  6. Обратный вызов WeChat:
    • Повторная проверка оплаты, проверка суммы.
    • Обновление статуса оплаты, времени оплаты и другой информации на основе отправленного номера заказа этой платёжной системы.
    • Синхронный обратный вызов ==> возврат параметров и получение ответа (HttpGet) на сторонний синхронный обратный адрес.
    • Асинхронный обратный вызов ==> если нет ответа, возврат параметров на сторонний асинхронный обратный адрес и получение ответа (HttpGet). Если ответ был получен, он игнорируется.
    • Общее количество уведомлений: всего будет отправлено 13 уведомлений (глобальные уведомления, HttpGet). После отправки синхронных и асинхронных уведомлений частота уведомлений может немного снизиться. Эта система успешно выполнила обратный вызов, но не получила ответа от сторонней системы для заказов версии 2.0. Уведомления отправляются с интервалом в 1 минуту, 2 минуты, 3 минуты, 4 минуты, 5 минут, 10 минут, 20 минут, 30 минут, 1 час, 2 часа, 5 часов, 12 часов и 24 часа.

Несколько моментов для размышления

  1. Почему необходимо повторно проверять параметры после первого рукопожатия при оплате? Ответ: чтобы убедиться, что данные, переданные во второй раз, верны, поскольку после первого рукопожатия сторонняя служба может добавить логическую обработку.
  2. В чём смысл v1.0? Ответ: стабильность: если эта система выйдет из строя, это приведёт к большому количеству пропущенных уведомлений об успешных платежах, что вызовет большое количество отменённых транзакций в сторонних системах. Безопасность: прямое общение между серверами Tencent и сторонними серверами определённо безопаснее, чем использование промежуточного сервера. Сложность разработки системы и эффективность работы системы: обратный вызов напрямую обрабатывается сторонней системой, что делает эту систему более лёгкой, простой и эффективной. Конечно, если учесть разделение счетов со сторонней системой, то необходимо получить уведомление о возврате, а затем уведомить стороннюю систему, иначе невозможно определить, какие заказы были фактически оплачены.

Соглашения о формате для сторонних разработчиков

  1. Appid: 16 бит.
  2. Appsecret: 32 бита.
  3. Идентификатор заказа третьей стороны: 10 бит, различные типы заказов можно различать по начальному символу.
  4. Синхронные и асинхронные адреса должны быть полными адресами, доступными и не должны содержать параметров.

Инструкция по эксплуатации

  1. Разверните веб-сайт и предоставьте права на чтение и запись для папки с журналами.
  2. Настройте бэкэнд управления публичным аккаунтом (сертифицированный сервисный аккаунт): безопасное доменное имя js, доменное имя обратного вызова, бизнес-доменное имя, белый список IP-адресов серверов.
  3. Настройка платформы продавца: каталог оплаты js.
  4. Xmlconfig/wxpay.config.
  5. Xmlconfig/site.config: параметры WeChat (исходный идентификатор: wxid, токен: wxtoken, идентификатор разработчика: wxappid, пароль разработчика: wxappsecret).
  6. Войдите в бэкенд управления http://www.xxx.com/admin/login.aspx (используйте учётную запись администратора по умолчанию и пароль admin888 для входа).
  7. Управление сайтом — управление сторонними разработчиками: создайте учётную запись стороннего разработчика, вы можете случайным образом сгенерировать appid и appsecret или ввести их вручную.
  8. Методы вызова третьей стороной: 8.1 Авторизация родительского и дочернего счетов: обратитесь к /demo/WxOauth.aspx для вызова авторизации WeChat. 8.2 Оплата вызова: обратитесь к /demo/WePay.aspx для оплаты вызова. 8.3 Оплата обратного вызова: папка /demo/wxpay.
  9. Метод отладки: вы можете использовать ведение журнала для отладки (метод Xinying.Common.Utils.WriteTxt может записывать журнал).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/qxinying-WePaySystem.git
git@api.gitlife.ru:oschina-mirror/qxinying-WePaySystem.git
oschina-mirror
qxinying-WePaySystem
qxinying-WePaySystem
master