欢迎使用 Pay-Assistant
支付助手 — 简化配置,注解带飞!
基于微信支付API、支付宝支付API封装
— простое конфигурирование с помощью аннотаций для выполнения операций, связанных с оплатой;
— исключение сложных и утомительных процессов подписи и проверки подписи, упрощение взаимодействия при оплате;
— передача результатов взаимодействия в обратном направлении.
implementation("cool.doudou:pay-assistant-boot-starter:latest")
Конфигурационные параметры:
pay:
modes:
- wx
- ali
notify-server-address: http://127.0.0.1:8000
wx:
appId: wx000001
mchId: 14000001
private-key-path: /home/test.pem
private-key-serial-number: 70000000001
api-key-v3: abcdefg
ali:
appId: ali00001
private-key-path: /home/test.pem
public-key-path: /home/test-pub.pem
Размещение заказа
Параметр | Название | Alipay | |
---|---|---|---|
outTradeNo | Номер заказа продавца | Цифры, строчные и прописные буквы _-*, уникален в рамках одного номера продавца | Буквы, цифры, символ нижнего подчёркивания, должен быть уникальным на стороне продавца |
money | Общая сумма | В единицах | В юанях, с точностью до двух знаков после запятой |
description | Описание товара | — | Не использовать специальные символы, такие как /, =, & и т. д. |
timeExpire | Срок действия заказа | Формат: yyyy-MM-DDTHH:mm:ss+TIMEZONE | Формат: yyyy-MM-dd HH:mm:ss |
attach | Дополнительные данные | Возвращаются без изменений в запросах API и уведомлениях об оплате | Возвращаются без изменений в асинхронных уведомлениях и счетах |
uid | Идентификатор пользователя | Идентификатор клиента | Идентификатор покупателя Alipay |
Возврат средств
Параметр | Название | Alipay | |
---|---|---|---|
outTradeNo | Номер заказа продавца | Уникален в рамках одного номера продавца, цифры, строчные и прописные буквы _-* | Должен быть уникальным в рамках транзакции, буквенно-цифровые символы, включая символ нижнего подчёркивания |
outRefundNo | Номер возврата | Внутренний уникальный номер системы, только цифры, строчные и прописные буквы _-@, вертикальная черта | Обозначает один запрос на возврат, должен быть уникален в рамках номера заказа продавца |
reason | Причина возврата | — | — |
money | Сумма | Единицы | — |
refundMoney | Сумма возврата | Единицы | Юани |
Счета
— Для счетов по транзакциям WeChat требуется два шага: сначала получить адрес счёта с помощью tradeBill, затем загрузить счёт в виде потока данных байтов с помощью downloadBill.
— Счета по транзакциям Alipay требуют одного шага: получить адрес счёта напрямую с помощью tradeBill.
Размещение заказов, запросы, закрытие, возврат средств, счета
— PayModeEnum.WX: WeChat;
— PayModeEnum.ALI: Alipay.
@Component
public class PayComponent {
@Autowired
private PayHelper payHelper;
/**
* Размещение заказа
*/
public void place() {
PlaceOrderParam placeOrderParam = new PlaceOrderParam();
// ...
payHelper.place(PayModeEnum.WX, placeOrderParam);
}
/**
* Запрос
*/
public void query() {
payHelper.query(PayModeEnum.WX, "xxxxxx00001");
}
/**
* Закрытие
*/
public void close() {
payHelper.close(PayModeEnum.WX, "xxxxxx00001");
}
/**
* Возврат средств
*/
public void refund() {
RefundParam refundParam = new RefundParam();
// ...
payHelper.refund(PayModeEnum.WX, refundParam);
}
/**
* Счёт
*/
public void tradeBill() {
payHelper.tradeBill(PayModeEnum.WX, "2022-07-07");
}
}
Уведомления о платежах
@Component
public class PayNotifyComponent {
/**
* WeChat
*/
@WxPayNotify
public void wxPayNotify(String message) {
System.out.println(message);
}
/**
* Alipay
*/
@AliPayNotify
public void aliPayNotify(String message) {
System.out.println(message);
}
}
Адрес уведомлений о платеже: система автоматически вызывает методы, помеченные @WxPayNotify или @AliPayNotify.
— WeChat: /pay-notify/wx;
— Alipay: /pay-notify/ali.
Преобразование строки закрытого ключа RSA Alipay в файл pem
— команда openssl используется для генерации файла формата PKCS1 *.pem, начинающегося с -----BEGIN RSA PRIVATE KEY-----.
openssl rsa -inform PEM -in *.txt -outform PEM -out *.pem
— команда openssl преобразует файл в формат PKCS8 *.pem, начинающийся с -----BEGIN PRIVATE KEY-----.
openssl pkcs8 -topk8 -inform PEM -in *.pem -outform PEM -out *_pkcs8.pem -nocrypt
Преобразование строки открытого ключа RSA Alipay в файл pem
— текстовый файл: добавить -----BEGIN PUBLIC KEY----- в начало и -----END PUBLIC KEY----- в конец, изменить расширение на .pem.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )