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

OSCHINA-MIRROR/liujit-basis-pay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Basis-pay

Введение

Интеграция с системой платежей на основе Spring: WeChat, Alipay, личные и корпоративные платежи через UnionPay.

Адрес GitHub: https://github.com/liujun0128/basis-pay.git

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

  • На основе Spring используются аннотации Spring @Component@Service.
  • Используется аннотация @Slf4j для создания журнала.

Инструкция по установке

  1. Способ 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">
  2. Измените файл wx-pay.properties в папке resource:

    wx.pay.appId=appid
    wx.pay.mchId=номер магазина
    wx.pay.mchKey=ключ магазина
    wx.pay.certPath=путь к двустороннему сертификату
    wx.pay.ip=IP-адрес клиента

Использование

  1. Демо-версия 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 )

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

Введение

Интеграция с WeChat Pay, Alipay и UnionPay (для физических лиц) и UnionPay (для бизнеса) на основе Spring. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/liujit-basis-pay.git
git@api.gitlife.ru:oschina-mirror/liujit-basis-pay.git
oschina-mirror
liujit-basis-pay
liujit-basis-pay
master