Сахарный тыква-платёж
Онлайн-демо — http://47.100.122.135:7171/
Установка зависимостей:
<dependency>
<groupId>org.thlws</groupId>
<artifactId>payment-thl</artifactId>
<version>1.2.0</version>
</dependency>
Среды разработки:
Документация:
Благодарности:
Целевая аудитория: Проект предназначен для начинающих разработчиков, которые хотят быстро подключить платёжные функции, но не хотят разбираться в официальной документации. Если вы уже работали с различными платёжными системами, то этот проект может показаться вам неинтересным. Проект ориентирован на новичков, независимо от их опыта работы с платёжными системами. Мы будем благодарны за звёздочки на GitHub.
Общение:
Приглашаем заинтересованных разработчиков присоединиться к проекту (электронная почта или сообщение в Code Cloud).
Пример проекта:
Список интерфейсов:
Платёж через Alipay: | Метод | Описание | |:-------|:-------| | payInMobileSite | Мобильный веб-сайт | | payInWebSite | Веб-сайт | | preCreate | Создание предварительного заказа | | pay | Оплата картой (офлайн) | | query | Платёжный запрос | | refund | Возврат платежа | | cancel | Отмена заказа |
Оплата через WeChat: | Метод | Описание | |:-------|:-------| | unifiedOrder | Унифицированный заказ (аналогично предварительному заказу) | | refund | Запрос на возврат платежа | | reverse | Отмена платежа | | microPay | Оплата картой | | orderQuery | Платёжный запрос | | closeOrder | Закрытие заказа | | openidQuery | Запрос OpenId | | queryMicroMch | Запрос информации о микро-получателе | | postMicroMch | Заявка на открытие микро-получения |
WeChat Public Account: | Метод | Описание | |:-------|:-------| | obtainOauthAccessToken | Получение accessToken (OAuth2) | | refreshOauthAccessToken | Обновление accessToken (OAuth2) | | isvalidOauthAccessToken | Проверка срока действия токена (OAuth2) | | generateWechatUrl | Генерация URL правил WeChat | | obtainUserInfo | Получение информации о пользователе | | obtainAccessToken | Получение accessToken (обычный) | | obtainJsApiTicket | Получение JSAPI Ticket | | obtainTemplateId | Получение идентификатора шаблона WeChat | | setupIndustry | Настройка атрибутов отрасли | | sendMsgToUser | Отправка уведомлений WeChat |
При использовании общедоступных учётных записей WeChat рекомендуется использовать Redis для хранения параметров, таких как токены и билеты, срок действия которых ограничен.
Использование:
Предварительные условия:
Быстрое начало работы:
// Платёж через Alipay
AlipayCore alipayCore = clientBuilder
.setAlipayPublicKey(alipay_public_key_2)
.setAppId(appid_2)
.setPrivateKey(alipay_private_key_2)
.setSignType(AlipayConstants.SIGN_TYPE_RSA2).build();
AlipayTradeRequest request = new AlipayTradeRequest();
request.setTotalAmount("0.01");
request.setStoreId("123456");
request.setOperatorId("hanley001");
request.setAuthCode("288609492126942746");
request.setOutTradeNo(System.currentTimeMillis()+"");
request.setSubject("Тестовый заказ 001");
AlipayTradeResponse response = AlipayClient.pay(request,alipayCore);
boolean isSuccess = response.isSuccess();
// Оплата через WeChat (карта)
String apiKey = "test_wechat_apikey";
WechatPayRequest request = new WechatPayRequest();
request.setAppId("test_wechat_appid");
request.setMchId("test_wechat_mchid");
request.setSpbillCreateIp(NetUtil.getLocalhostStr());
request.setTotalFee("1");
request.setAttach("some messages");
request.setOutTradeNo(ThlwsBeanUtil.getRandomString(32));
request.setAuthCode("13459326110303327");
request.setBody("pay test");
``` **Вызов платёжного интерфейса: как определить успех?**
WechatPayResponse response = WechatPayClient.microPay(request, apiKey);
boolean flag = response.isSuccess();
String message = response.getMessage();
System.out.println("isSuccess=" + flag + ", message=" + message);
**Поддерживает ли приложение Android?**
Приложение не поддерживает Android. Если у вас есть такие потребности, обратитесь к [платёжной системе WeChat APP](https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_4) или [платёжной системе Alipay APP](https://b.alipay.com/signing/productDetail.htm?productId=I1011000290000001002).
**История изменений**
v1.0.0 — интеграция различных платёжных платформ.
v1.0.1 — стандартизация кода модуля общественного номера.
v1.0.2 — добавление функции isSuccess() для возврата в WeChat Public Number.
v1.0.3 — добавлен интерфейс для получения новых свойств отрасли.
v1.0.4 — обобщение свойств отрасли, оптимизация кода.
v1.0.5 — добавлена функция WechatMpClient.isFromWechat для определения, исходит ли запрос от WeChat.
v1.0.6 — добавлено WechatUtil.parseNotifyMsgToBean(HttpServletRequest request) для обработки данных асинхронных уведомлений WeChat.
v1.0.7 — исправлены проблемы с подписью общественного номера и оптимизирована обработка данных асинхронного уведомления.
v1.0.8 — исправлена проблема с авторизацией веб-страницы WeChat, добавлены комментарии к части входа в класс общественного номера.
v1.0.9 — исправлен issue-I1047Y, спасибо alterem за обратную связь.
v1.1.0 — исправлена проблема формата параметров Alipay на веб-странице.
v1.1.1 — обновлён SDK Alipay, изменено присвоение значения productCode в Alipay Payment.
v1.1.2 — оптимизированы параметры платформы productCode при оплате через веб-сайт и мобильный сайт Alipay, синхронно обновлены payment-simple.
v1.1.3 — добавлен код2сессионный интерфейс, исправлены [github#1](https://github.com/thlws/payment-thl/issues/1), [gitee#I12BOM](https://gitee.com/thlws/payment-thl/issues/I12BOM).
v1.1.4 — обновлён SDK Alipay, требуется минимальная версия JDK 1.8+, оптимизирован интерфейс.
v1.1.5 — решена логическая проблема isSuccess при вызове Session2Code мини-программы.
v1.1.6 — регулярное обновление, обновление alipay-sdk-java hutoll, стандартизация javadoc.
v1.1.7 — выделен API мини-программы, обновлён alipay-sdk-java hutoll.
v1.1.8 — скорректирован интерфейс push-уведомлений для общественных номеров (push-уведомления шаблонов общественных номеров).
v1.1.9 — мини-программа, данные оплаты перед упаковкой для оплаты через общественные номера.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )