Basis-pay
Интеграция с системой платежей на основе Spring: WeChat, Alipay, личные и корпоративные платежи через UnionPay.
Адрес GitHub: https://github.com/liujun0128/basis-pay.git
Способ Spring boot:
@ComponentScan({"com.moyun.shop"}) // Добавляем пакет в класс запуска
@SpringBootApplication
public class BaseApplication {
public static void main(String[] args) {
SpringApplication.run(BaseApplication.class, args);
}
}
Способ Spring:
<!-- Используем annotation для автоматической регистрации bean -->
<context:component-scan base-package="com.moyun.com">
Измените файл wx-pay.properties в папке resource:
wx.pay.appId=appid
wx.pay.mchId=номер магазина
wx.pay.mchKey=ключ магазина
wx.pay.certPath=путь к двустороннему сертификату
wx.pay.ip=IP-адрес клиента
Демо-версия WeChat Pay:
package com.moyun.shop.pay;
import com.moyun.shop.pay.builder.PayParamBuilder;
import com.moyun.shop.pay.domain.enums.PayType;
import com.moyun.shop.pay.domain.param.PayParam;
import com.moyun.shop.pay.domain.result.PayResult;
import com.moyun.shop.pay.factory.*;
import com.moyun.shop.pay.service.*;
import com.moyun.shop.pay.wx.domain.enums.TradeType;
import com.moyun.shop.pay.wx.domain.param.*;
import javax.annotation.Resource;
/**
* @Description Тестирование WeChat Pay
* @Author LiuJun
* @Date 2020/5/25 12:53 下午
*/
public class WxPayTest {
@Resource
private UnifiedOrderFactory unifiedOrderFactory;
@Resource
private OrderQueryFactory orderQueryFactory;
@Resource
private OrderCloseFactory orderCloseFactory;
@Resource
private RefundFactory refundFactory;
@Resource
private RefundQueryFactory refundQueryFactory;
/**
* Создание единого заказа
*/
public PayResult unifiedOrder() {
// Параметры запроса на создание единого заказа WeChat
UnifiedOrderParam param = new UnifiedOrderParam();
param.setBody(PayUtil.getRandomString(24));
param.setTradeNo(PayUtil.getRandomString(12));
param.setTotalFee(1);
param.setNotifyUrl("orderNotifyUrl");
param.setTradeType(TradeType.JSAPI.getType());
param.setOpenId("");
// payType устанавливает тип оплаты, создаёт параметры запроса
PayParam<UnifiedOrderParam> payParam =
new PayParamBuilder<UnifiedOrderParam>().payType(PayType.WX_PAY).param(param).build();
// Получаем экземпляр создания единого заказа
UnifiedOrderService service = unifiedOrderFactory.getService(payParam);
// Получаем результат выполнения
PayResult result = service.order(payParam);
return result;
}
/**
* Запрос заказа
*/
public PayResult orderQuery(String orderNo) {
// Параметры запроса WeChat на заказ
OrderQueryParam param = new OrderQueryParam();
param.setTradeNo(orderNo);
// payType устанавливает тип оплаты, создаёт параметры запроса
PayParam<OrderQueryParam> payParam =
new PayParamBuilder<OrderQueryParam>().payType(PayType.WX_PAY).param(param).build();
// Получаем экземпляр запроса заказа
OrderQueryService service = orderQueryFactory.getService(payParam);
// Получаем результат выполнения
PayResult result = service.query(payParam);
return result;
}
/**
* Закрытие заказа
*/
public PayResult orderClose(String orderNo) {
// Параметры запроса WeChat на закрытие заказа
OrderCloseParam param = new OrderCloseParam();
param.setTradeNo(orderNo);
// payType устанавливает тип оплаты, создаёт параметры запроса
PayParam<OrderCloseParam> payParam =
new PayParamBuilder<OrderCloseParam>().payType(PayType.WX_PAY).param(param).build();
// Получаем экземпляр закрытия заказа
OrderCloseService service = orderCloseFactory.getService(payParam);
// Получаем результат выполнения
PayResult result = service.close(payParam);
return result;
}
/**
* Возврат средств
*/
public PayResult refund(String orderNo) {
// Параметры запроса WeChat на возврат средств
RefundParam param = new RefundParam();
param.setTradeNo(orderNo);
...
``` ```
// Создание параметров для запроса на возврат средств
param.setRefundNo(PayUtil.getRandomString(12));
param.setRefundFee(1);
param.setTotalFee(1);
param.setNotifyUrl("refundNotifyUrl");
// payType устанавливает тип оплаты, строит параметры запроса
PayParam<RefundParam> payParam = new PayParamBuilder<RefundParam>().payType(PayType.WX_PAY).param(param).build();
// Получение экземпляра сервиса возврата средств
RefundService refundService = refundFactory.getService(payParam);
// Получение результата выполнения
PayResult result = refundService.refund(payParam);
return result;
}
/**
Запрос на возврат средств */ public PayResult refundQuery(String orderNo) { // Параметры запроса на возврат средств RefundQueryParam param = new RefundQueryParam(); param.setTradeNo(orderNo);
// payType устанавливает тип оплаты, строит параметры запроса PayParam payParam = new PayParamBuilder().payType(PayType.WX_PAY).param(param).build();
// Получение экземпляра сервиса запроса на возврат средств RefundQueryService service = refundQueryFactory.getService(payParam);
// Получение результата выполнения PayResult result = service.query(payParam); return result; }
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )