Commit 895c650ca698a5d67a557b115c0523a6a7577195
1 parent
d2f2c2b4
feat(pay):增加支付宝 lite 支付
Showing
8 changed files
with
70 additions
and
7 deletions
sql/dm/ruoyi-vue-pro-dm8.sql
| ... | ... | @@ -716,6 +716,7 @@ INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_t |
| 716 | 716 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (117, 11, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code', 0, 'primary', '', '支付宝 Wap 网站支付', '1', '2021-12-03 10:42:26', '1', '2023-07-19 20:09:16', '0'); |
| 717 | 717 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (118, 12, '支付宝 App 支付', 'alipay_app', 'pay_channel_code', 0, 'primary', '', '支付宝 App 支付', '1', '2021-12-03 10:42:55', '1', '2023-07-19 20:09:20', '0'); |
| 718 | 718 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (119, 14, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code', 0, 'primary', '', '支付宝扫码支付', '1', '2021-12-03 10:43:10', '1', '2023-07-19 20:09:28', '0'); |
| 719 | +INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (3449, 15, '支付宝小程序支付', 'alipay_lite', 'pay_channel_code', 0, 'primary', '', '支付宝小程序支付', '1', '2026-08-18 00:00:00', '1', '2026-08-18 00:00:00', '0'); | |
| 719 | 720 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (120, 10, '通知成功', '10', 'pay_notify_status', 0, 'success', '', '通知成功', '1', '2021-12-03 11:02:41', '1', '2023-07-19 10:08:19', '0'); |
| 720 | 721 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (121, 20, '通知失败', '20', 'pay_notify_status', 0, 'danger', '', '通知失败', '1', '2021-12-03 11:02:59', '1', '2023-07-19 10:08:21', '0'); |
| 721 | 722 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (122, 0, '等待通知', '0', 'pay_notify_status', 0, 'info', '', '未通知', '1', '2021-12-03 11:03:10', '1', '2023-07-19 10:08:24', '0'); | ... | ... |
sql/highgo/ruoyi-vue-pro.sql
| ... | ... | @@ -817,6 +817,7 @@ INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_t |
| 817 | 817 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (117, 11, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code', 0, 'primary', '', '支付宝 Wap 网站支付', '1', '2021-12-03 10:42:26', '1', '2023-07-19 20:09:16', '0'); |
| 818 | 818 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (118, 12, '支付宝 App 支付', 'alipay_app', 'pay_channel_code', 0, 'primary', '', '支付宝 App 支付', '1', '2021-12-03 10:42:55', '1', '2023-07-19 20:09:20', '0'); |
| 819 | 819 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (119, 14, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code', 0, 'primary', '', '支付宝扫码支付', '1', '2021-12-03 10:43:10', '1', '2023-07-19 20:09:28', '0'); |
| 820 | +INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (3449, 15, '支付宝小程序支付', 'alipay_lite', 'pay_channel_code', 0, 'primary', '', '支付宝小程序支付', '1', '2026-08-18 00:00:00', '1', '2026-08-18 00:00:00', '0'); | |
| 820 | 821 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (120, 10, '通知成功', '10', 'pay_notify_status', 0, 'success', '', '通知成功', '1', '2021-12-03 11:02:41', '1', '2023-07-19 10:08:19', '0'); |
| 821 | 822 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (121, 20, '通知失败', '20', 'pay_notify_status', 0, 'danger', '', '通知失败', '1', '2021-12-03 11:02:59', '1', '2023-07-19 10:08:21', '0'); |
| 822 | 823 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (122, 0, '等待通知', '0', 'pay_notify_status', 0, 'info', '', '未通知', '1', '2021-12-03 11:03:10', '1', '2023-07-19 10:08:24', '0'); |
| ... | ... | @@ -6195,4 +6196,3 @@ COMMIT; |
| 6195 | 6196 | DROP SEQUENCE IF EXISTS yudao_demo03_student_seq; |
| 6196 | 6197 | CREATE SEQUENCE yudao_demo03_student_seq |
| 6197 | 6198 | START 10; |
| 6198 | - | ... | ... |
sql/kingbase/ruoyi-vue-pro.sql
| ... | ... | @@ -817,6 +817,7 @@ INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_t |
| 817 | 817 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (117, 11, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code', 0, 'primary', '', '支付宝 Wap 网站支付', '1', '2021-12-03 10:42:26', '1', '2023-07-19 20:09:16', '0'); |
| 818 | 818 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (118, 12, '支付宝 App 支付', 'alipay_app', 'pay_channel_code', 0, 'primary', '', '支付宝 App 支付', '1', '2021-12-03 10:42:55', '1', '2023-07-19 20:09:20', '0'); |
| 819 | 819 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (119, 14, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code', 0, 'primary', '', '支付宝扫码支付', '1', '2021-12-03 10:43:10', '1', '2023-07-19 20:09:28', '0'); |
| 820 | +INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (3449, 15, '支付宝小程序支付', 'alipay_lite', 'pay_channel_code', 0, 'primary', '', '支付宝小程序支付', '1', '2026-08-18 00:00:00', '1', '2026-08-18 00:00:00', '0'); | |
| 820 | 821 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (120, 10, '通知成功', '10', 'pay_notify_status', 0, 'success', '', '通知成功', '1', '2021-12-03 11:02:41', '1', '2023-07-19 10:08:19', '0'); |
| 821 | 822 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (121, 20, '通知失败', '20', 'pay_notify_status', 0, 'danger', '', '通知失败', '1', '2021-12-03 11:02:59', '1', '2023-07-19 10:08:21', '0'); |
| 822 | 823 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (122, 0, '等待通知', '0', 'pay_notify_status', 0, 'info', '', '未通知', '1', '2021-12-03 11:03:10', '1', '2023-07-19 10:08:24', '0'); |
| ... | ... | @@ -1663,7 +1664,7 @@ COMMIT; |
| 1663 | 1664 | |
| 1664 | 1665 | DROP SEQUENCE IF EXISTS system_dict_data_seq; |
| 1665 | 1666 | CREATE SEQUENCE system_dict_data_seq |
| 1666 | - START 3449; | |
| 1667 | + START 3450; | |
| 1667 | 1668 | |
| 1668 | 1669 | -- ---------------------------- |
| 1669 | 1670 | -- Table structure for system_dict_type | ... | ... |
sql/opengauss/ruoyi-vue-pro.sql
| ... | ... | @@ -817,6 +817,7 @@ INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_t |
| 817 | 817 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (117, 11, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code', 0, 'primary', '', '支付宝 Wap 网站支付', '1', '2021-12-03 10:42:26', '1', '2023-07-19 20:09:16', '0'); |
| 818 | 818 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (118, 12, '支付宝 App 支付', 'alipay_app', 'pay_channel_code', 0, 'primary', '', '支付宝 App 支付', '1', '2021-12-03 10:42:55', '1', '2023-07-19 20:09:20', '0'); |
| 819 | 819 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (119, 14, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code', 0, 'primary', '', '支付宝扫码支付', '1', '2021-12-03 10:43:10', '1', '2023-07-19 20:09:28', '0'); |
| 820 | +INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (3449, 15, '支付宝小程序支付', 'alipay_lite', 'pay_channel_code', 0, 'primary', '', '支付宝小程序支付', '1', '2026-08-18 00:00:00', '1', '2026-08-18 00:00:00', '0'); | |
| 820 | 821 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (120, 10, '通知成功', '10', 'pay_notify_status', 0, 'success', '', '通知成功', '1', '2021-12-03 11:02:41', '1', '2023-07-19 10:08:19', '0'); |
| 821 | 822 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (121, 20, '通知失败', '20', 'pay_notify_status', 0, 'danger', '', '通知失败', '1', '2021-12-03 11:02:59', '1', '2023-07-19 10:08:21', '0'); |
| 822 | 823 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (122, 0, '等待通知', '0', 'pay_notify_status', 0, 'info', '', '未通知', '1', '2021-12-03 11:03:10', '1', '2023-07-19 10:08:24', '0'); |
| ... | ... | @@ -1663,7 +1664,7 @@ COMMIT; |
| 1663 | 1664 | |
| 1664 | 1665 | DROP SEQUENCE IF EXISTS system_dict_data_seq; |
| 1665 | 1666 | CREATE SEQUENCE system_dict_data_seq |
| 1666 | - START 3449; | |
| 1667 | + START 3450; | |
| 1667 | 1668 | |
| 1668 | 1669 | -- ---------------------------- |
| 1669 | 1670 | -- Table structure for system_dict_type | ... | ... |
sql/oracle/ruoyi-vue-pro.sql
| ... | ... | @@ -769,6 +769,7 @@ INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_t |
| 769 | 769 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (117, 11, '支付宝 Wap 网站支付', 'alipay_wap', 'pay_channel_code', 0, 'primary', '', '支付宝 Wap 网站支付', '1', to_date('2021-12-03 10:42:26', 'SYYYY-MM-DD HH24:MI:SS'), '1', to_date('2023-07-19 20:09:16', 'SYYYY-MM-DD HH24:MI:SS'), '0'); |
| 770 | 770 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (118, 12, '支付宝 App 支付', 'alipay_app', 'pay_channel_code', 0, 'primary', '', '支付宝 App 支付', '1', to_date('2021-12-03 10:42:55', 'SYYYY-MM-DD HH24:MI:SS'), '1', to_date('2023-07-19 20:09:20', 'SYYYY-MM-DD HH24:MI:SS'), '0'); |
| 771 | 771 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (119, 14, '支付宝扫码支付', 'alipay_qr', 'pay_channel_code', 0, 'primary', '', '支付宝扫码支付', '1', to_date('2021-12-03 10:43:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', to_date('2023-07-19 20:09:28', 'SYYYY-MM-DD HH24:MI:SS'), '0'); |
| 772 | +INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (3449, 15, '支付宝小程序支付', 'alipay_lite', 'pay_channel_code', 0, 'primary', '', '支付宝小程序支付', '1', to_date('2026-08-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', to_date('2026-08-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '0'); | |
| 772 | 773 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (120, 10, '通知成功', '10', 'pay_notify_status', 0, 'success', '', '通知成功', '1', to_date('2021-12-03 11:02:41', 'SYYYY-MM-DD HH24:MI:SS'), '1', to_date('2023-07-19 10:08:19', 'SYYYY-MM-DD HH24:MI:SS'), '0'); |
| 773 | 774 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (121, 20, '通知失败', '20', 'pay_notify_status', 0, 'danger', '', '通知失败', '1', to_date('2021-12-03 11:02:59', 'SYYYY-MM-DD HH24:MI:SS'), '1', to_date('2023-07-19 10:08:21', 'SYYYY-MM-DD HH24:MI:SS'), '0'); |
| 774 | 775 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (122, 0, '等待通知', '0', 'pay_notify_status', 0, 'info', '', '未通知', '1', to_date('2021-12-03 11:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', to_date('2023-07-19 10:08:24', 'SYYYY-MM-DD HH24:MI:SS'), '0'); |
| ... | ... | @@ -1614,7 +1615,7 @@ COMMIT; |
| 1614 | 1615 | -- @formatter:on |
| 1615 | 1616 | |
| 1616 | 1617 | CREATE SEQUENCE system_dict_data_seq |
| 1617 | - START WITH 3449; | |
| 1618 | + START WITH 3450; | |
| 1618 | 1619 | |
| 1619 | 1620 | -- ---------------------------- |
| 1620 | 1621 | -- Table structure for system_dict_type | ... | ... |
sql/sqlserver/ruoyi-vue-pro.sql
| ... | ... | @@ -2258,6 +2258,7 @@ GO |
| 2258 | 2258 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (118, 12, N'支付宝 App 支付', N'alipay_app', N'pay_channel_code', 0, N'primary', N'', N'支付宝 App 支付', N'1', N'2021-12-03 10:42:55', N'1', N'2023-07-19 20:09:20', N'0') |
| 2259 | 2259 | GO |
| 2260 | 2260 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (119, 14, N'支付宝扫码支付', N'alipay_qr', N'pay_channel_code', 0, N'primary', N'', N'支付宝扫码支付', N'1', N'2021-12-03 10:43:10', N'1', N'2023-07-19 20:09:28', N'0') |
| 2261 | +INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (3449, 15, N'支付宝小程序支付', N'alipay_lite', N'pay_channel_code', 0, N'primary', N'', N'支付宝小程序支付', N'1', N'2026-08-18 00:00:00', N'1', N'2026-08-18 00:00:00', N'0') | |
| 2261 | 2262 | GO |
| 2262 | 2263 | INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) VALUES (120, 10, N'通知成功', N'10', N'pay_notify_status', 0, N'success', N'', N'通知成功', N'1', N'2021-12-03 11:02:41', N'1', N'2023-07-19 10:08:19', N'0') |
| 2263 | 2264 | GO | ... | ... |
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayLitePayClient.java
| ... | ... | @@ -20,6 +20,8 @@ import static cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay. |
| 20 | 20 | * 支付宝【小程序】的 PayClient 实现类 |
| 21 | 21 | * |
| 22 | 22 | * 文档:<a href="https://opendocs.alipay.com/mini/6039ed0c_alipay.trade.create">统一收单交易创建</a> |
| 23 | + * | |
| 24 | + * @author graypxl | |
| 23 | 25 | */ |
| 24 | 26 | public class AlipayLitePayClient extends AbstractAlipayPayClient { |
| 25 | 27 | ... | ... |
yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayLitePayClientTest.java
| 1 | 1 | package cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| 4 | +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; | |
| 5 | +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; | |
| 4 | 6 | import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO; |
| 5 | 7 | import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO; |
| 6 | 8 | import cn.iocoder.yudao.module.pay.framework.pay.core.enums.PayOrderDisplayModeEnum; |
| 9 | +import cn.iocoder.yudao.module.pay.framework.pay.core.client.exception.PayClientException; | |
| 7 | 10 | import com.alipay.api.AlipayApiException; |
| 8 | 11 | import com.alipay.api.domain.AlipayTradeCreateModel; |
| 9 | 12 | import com.alipay.api.request.AlipayTradeCreateRequest; |
| ... | ... | @@ -27,12 +30,15 @@ import static org.mockito.Mockito.when; |
| 27 | 30 | |
| 28 | 31 | /** |
| 29 | 32 | * {@link AlipayLitePayClient} 单元测试 |
| 33 | + * | |
| 34 | + * @author graypxl | |
| 30 | 35 | */ |
| 31 | 36 | public class AlipayLitePayClientTest extends AbstractAlipayClientTest { |
| 32 | 37 | |
| 33 | 38 | @InjectMocks |
| 34 | 39 | private AlipayLitePayClient client = new AlipayLitePayClient(randomLongId(), config); |
| 35 | 40 | |
| 41 | + @Override | |
| 36 | 42 | @BeforeEach |
| 37 | 43 | public void setUp() { |
| 38 | 44 | setClient(client); |
| ... | ... | @@ -55,9 +61,15 @@ public class AlipayLitePayClientTest extends AbstractAlipayClientTest { |
| 55 | 61 | PayOrderRespDTO resp = client.unifiedOrder(reqDTO); |
| 56 | 62 | |
| 57 | 63 | assertEquals(WAITING.getStatus(), resp.getStatus()); |
| 64 | + assertEquals(reqDTO.getOutTradeNo(), resp.getOutTradeNo()); | |
| 65 | + assertNull(resp.getChannelOrderNo()); | |
| 66 | + assertNull(resp.getChannelUserId()); | |
| 67 | + assertNull(resp.getSuccessTime()); | |
| 58 | 68 | assertEquals(PayOrderDisplayModeEnum.APP.getMode(), resp.getDisplayMode()); |
| 59 | 69 | assertEquals(tradeNo, resp.getDisplayContent()); |
| 60 | 70 | assertSame(response, resp.getRawData()); |
| 71 | + assertNull(resp.getChannelErrorCode()); | |
| 72 | + assertNull(resp.getChannelErrorMsg()); | |
| 61 | 73 | } |
| 62 | 74 | |
| 63 | 75 | @Test |
| ... | ... | @@ -70,7 +82,12 @@ public class AlipayLitePayClientTest extends AbstractAlipayClientTest { |
| 70 | 82 | PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), randomString(), randomInteger()); |
| 71 | 83 | reqDTO.setChannelExtras(Map.of(AlipayLitePayClient.BUYER_ID_KEY, buyerId)); |
| 72 | 84 | |
| 73 | - assertEquals(WAITING.getStatus(), client.unifiedOrder(reqDTO).getStatus()); | |
| 85 | + PayOrderRespDTO resp = client.unifiedOrder(reqDTO); | |
| 86 | + | |
| 87 | + assertEquals(WAITING.getStatus(), resp.getStatus()); | |
| 88 | + assertEquals(reqDTO.getOutTradeNo(), resp.getOutTradeNo()); | |
| 89 | + assertEquals(PayOrderDisplayModeEnum.APP.getMode(), resp.getDisplayMode()); | |
| 90 | + assertSame(response, resp.getRawData()); | |
| 74 | 91 | } |
| 75 | 92 | |
| 76 | 93 | @Test |
| ... | ... | @@ -83,7 +100,12 @@ public class AlipayLitePayClientTest extends AbstractAlipayClientTest { |
| 83 | 100 | PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), randomString(), randomInteger()); |
| 84 | 101 | reqDTO.setChannelExtras(Map.of("openid", buyerOpenId)); |
| 85 | 102 | |
| 86 | - assertEquals(WAITING.getStatus(), client.unifiedOrder(reqDTO).getStatus()); | |
| 103 | + PayOrderRespDTO resp = client.unifiedOrder(reqDTO); | |
| 104 | + | |
| 105 | + assertEquals(WAITING.getStatus(), resp.getStatus()); | |
| 106 | + assertEquals(reqDTO.getOutTradeNo(), resp.getOutTradeNo()); | |
| 107 | + assertEquals(PayOrderDisplayModeEnum.APP.getMode(), resp.getDisplayMode()); | |
| 108 | + assertSame(response, resp.getRawData()); | |
| 87 | 109 | } |
| 88 | 110 | |
| 89 | 111 | @Test |
| ... | ... | @@ -97,7 +119,12 @@ public class AlipayLitePayClientTest extends AbstractAlipayClientTest { |
| 97 | 119 | PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), randomString(), randomInteger()); |
| 98 | 120 | reqDTO.setChannelExtras(Map.of(AlipayLitePayClient.BUYER_OPEN_ID_KEY, buyerOpenId)); |
| 99 | 121 | |
| 100 | - assertEquals(WAITING.getStatus(), client.unifiedOrder(reqDTO).getStatus()); | |
| 122 | + PayOrderRespDTO resp = client.unifiedOrder(reqDTO); | |
| 123 | + | |
| 124 | + assertEquals(WAITING.getStatus(), resp.getStatus()); | |
| 125 | + assertEquals(reqDTO.getOutTradeNo(), resp.getOutTradeNo()); | |
| 126 | + assertEquals(PayOrderDisplayModeEnum.APP.getMode(), resp.getDisplayMode()); | |
| 127 | + assertSame(response, resp.getRawData()); | |
| 101 | 128 | } |
| 102 | 129 | |
| 103 | 130 | @Test |
| ... | ... | @@ -117,6 +144,13 @@ public class AlipayLitePayClientTest extends AbstractAlipayClientTest { |
| 117 | 144 | PayOrderRespDTO resp = client.unifiedOrder(reqDTO); |
| 118 | 145 | |
| 119 | 146 | assertEquals(CLOSED.getStatus(), resp.getStatus()); |
| 147 | + assertEquals(reqDTO.getOutTradeNo(), resp.getOutTradeNo()); | |
| 148 | + assertNull(resp.getChannelOrderNo()); | |
| 149 | + assertNull(resp.getChannelUserId()); | |
| 150 | + assertNull(resp.getSuccessTime()); | |
| 151 | + assertNull(resp.getDisplayMode()); | |
| 152 | + assertNull(resp.getDisplayContent()); | |
| 153 | + assertSame(response, resp.getRawData()); | |
| 120 | 154 | assertEquals(subCode, resp.getChannelErrorCode()); |
| 121 | 155 | assertEquals(subMsg, resp.getChannelErrorMsg()); |
| 122 | 156 | } |
| ... | ... | @@ -130,6 +164,28 @@ public class AlipayLitePayClientTest extends AbstractAlipayClientTest { |
| 130 | 164 | assertThrows(ServiceException.class, () -> client.unifiedOrder(reqDTO)); |
| 131 | 165 | } |
| 132 | 166 | |
| 167 | + @Test | |
| 168 | + @DisplayName("支付宝小程序支付:抛出业务异常") | |
| 169 | + public void testUnifiedOrder_throwServiceException() throws AlipayApiException { | |
| 170 | + when(defaultAlipayClient.execute(argThat((ArgumentMatcher<AlipayTradeCreateRequest>) request -> true))) | |
| 171 | + .thenThrow(ServiceExceptionUtil.exception(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR)); | |
| 172 | + PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), randomString(), randomInteger()); | |
| 173 | + reqDTO.setChannelExtras(Map.of(AlipayLitePayClient.BUYER_OPEN_ID_KEY, randomString())); | |
| 174 | + | |
| 175 | + assertThrows(ServiceException.class, () -> client.unifiedOrder(reqDTO)); | |
| 176 | + } | |
| 177 | + | |
| 178 | + @Test | |
| 179 | + @DisplayName("支付宝小程序支付:抛出系统异常") | |
| 180 | + public void testUnifiedOrder_throwPayException() throws AlipayApiException { | |
| 181 | + when(defaultAlipayClient.execute(argThat((ArgumentMatcher<AlipayTradeCreateRequest>) request -> true))) | |
| 182 | + .thenThrow(new RuntimeException("系统异常")); | |
| 183 | + PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), randomString(), randomInteger()); | |
| 184 | + reqDTO.setChannelExtras(Map.of(AlipayLitePayClient.BUYER_OPEN_ID_KEY, randomString())); | |
| 185 | + | |
| 186 | + assertThrows(PayClientException.class, () -> client.unifiedOrder(reqDTO)); | |
| 187 | + } | |
| 188 | + | |
| 133 | 189 | private static ArgumentMatcher<AlipayTradeCreateRequest> assertRequest(String appId, String buyerId, |
| 134 | 190 | String buyerOpenId) { |
| 135 | 191 | return request -> { | ... | ... |