diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f49a4e1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..411a1e5 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# 微信支付 Spring Boot 组件 + +为了满足业务中出现app支付、公众号支付、小程序支付等多appid并存的场景,对原有的进行了增强开发出了多租户版本。 + +请给[Payment Spring Boot](https://github.com/NotFound403/payment-spring-boot) **Star**以鼓励,谢谢。 + + +## Maven 最新中央仓库坐标 + +```xml + + cn.felord + payment-spring-boot-starter + 1.0.3.RELEASE + +``` + +## 功能 +- 实现微信支付多商户 +- 集成支付宝SDK、快速接入Spring Boot +- 实现微信支付V3 基础支付 +- 实现微信支付V3 合单支付 +- 实现微信支付V3 代金券 +- 实现微信支付V3 微信支付分 +- 实现微信支付V3 先享卡 + +## 开源协议 +**Apache 2.0** + +## 仓库地址 +- [GitHub](https://github.com/NotFound403/payment-spring-boot) +- [Gitee](https://gitee.com/felord/payment-spring-boot) + +## 文档地址 +- [payment-spring-boot GitHub文档](https://notfound403.github.io/payment-spring-boot) +- [payment-spring-boot Gitee文档](https://felord.gitee.io/payment-spring-boot) + +## QQ交流群 +为了交流解惑,新建QQ群,可通过扫码进入。 + +![QQ交流群](./docs/img/qqun.png) \ No newline at end of file diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..6a5a65e --- /dev/null +++ b/docs/README.md @@ -0,0 +1,48 @@ +## 前言 +大部分的 **Java Web** 项目都会使用 **Spring**,尤其是 **Spring Boot**。所以笔者在开发过程中萌生一种直接构建于Spring依赖之上的支付开发包的想法。由于支付宝已经提供了SDK,所以只要将其初始化委托给 **Spring** 即可。剩下的硬骨头就是微信支付了。 + +## 微信支付V3的优势 + +笔者最开始实现微信支付的时候刚好**微信支付V3**版本的 **API**公布了。相比较于 **V2**版本: + +- [x] 遵循统一的 **Restful** 的设计风格 +- [x] 使用 **JSON** 作为数据交互的格式,不再使用XML +- [x] 使用基于非对称密钥的 **SHA256-RSA** 的数字签名算法,不再使用 **MD5** 或 **HMAC-SHA256** +- [x] 不再要求 **HTTPS** 客户端证书 +- [x] 使用 **AES-256-GCM**,对回调中的关键信息进行加密保护 + +这种开发体验要远远好于之前的 **V2**,因此选择了微信支付V3。 + +## 目前支持的渠道 + +- [x] **微信支付V3** 全量支持,并支持多租户以同时满足移动应用App、公众号、小程序等支付场景 +- [x] **支付宝** 集成SDK,作简单适配 + +## 微信支付V3进度 +- 微信支付营销-代金券 `WechatMarketingFavorApi` 100% +- 微信支付 支付功能-普通支付直连模式 `WechatDirectPayApi` 100% +- 微信合单支付 `WechatCombinePayApi` 100% + +## Maven 中央仓库坐标 +> 推荐使用最新版本 +```xml + + cn.felord + payment-spring-boot-starter + 1.0.3.RELEASE + +``` +## 采用技术 +只依赖了 **Spring**已有的东西,做到了低依赖。 + +- **Spring** +- **Jackson** +- **Ali-pay-sdk** + +## 开源协议 + +本项目采用[Apache2.0](https://www.apache.org/licenses/LICENSE-2.0)开源协议。 + +## **免责声明** + +**本项目涉及到资金交易开发,开发者需要经严格测试后方能用于生产环境,本项目不对使用者的行为负责。** \ No newline at end of file diff --git a/docs/_coverpage.md b/docs/_coverpage.md new file mode 100644 index 0000000..b6d6e26 --- /dev/null +++ b/docs/_coverpage.md @@ -0,0 +1,14 @@ + +# Payment Spring Boot + +> Spring Boot 风格支付开发包 + +- 简单、快捷、融合Spring Boot生态 + + +[GitHub](https://github.com/NotFound403/payment-spring-boot) +[示例项目](https://github.com/NotFound403/payment-spring-boot-samples) +[技术博客](https://felord.cn) +[快速开始](README.md) + +![color](#9ee8bd) \ No newline at end of file diff --git a/docs/_sidebar.md b/docs/_sidebar.md new file mode 100644 index 0000000..6be5292 --- /dev/null +++ b/docs/_sidebar.md @@ -0,0 +1,7 @@ +* [首页](/) +* [项目简介](README.md) +* [快速接入](quick_start.md) +* [JavaDoc](apidocs/index.html ':ignore') +* [微信支付V3接口文档](wechat_v3_api.md) +* [日常踩坑](stackoverflow.md) +* [更新日志](changelog.md) diff --git a/docs/apidocs/allclasses-frame.html b/docs/apidocs/allclasses-frame.html new file mode 100644 index 0000000..8a9ff02 --- /dev/null +++ b/docs/apidocs/allclasses-frame.html @@ -0,0 +1,104 @@ + + + + + + +所有类 (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

所有类

+
+ +
+ + diff --git a/docs/apidocs/allclasses-noframe.html b/docs/apidocs/allclasses-noframe.html new file mode 100644 index 0000000..d943732 --- /dev/null +++ b/docs/apidocs/allclasses-noframe.html @@ -0,0 +1,104 @@ + + + + + + +所有类 (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

所有类

+
+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/PayException.html b/docs/apidocs/cn/felord/payment/PayException.html new file mode 100644 index 0000000..2721956 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/PayException.html @@ -0,0 +1,329 @@ + + + + + + +PayException (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment
+

类 PayException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/AliPayConfiguration.html b/docs/apidocs/cn/felord/payment/alipay/AliPayConfiguration.html new file mode 100644 index 0000000..85502fd --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/AliPayConfiguration.html @@ -0,0 +1,315 @@ + + + + + + +AliPayConfiguration (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.alipay
+

类 AliPayConfiguration

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/AliPayProperties.V1.html b/docs/apidocs/cn/felord/payment/alipay/AliPayProperties.V1.html new file mode 100644 index 0000000..de9f70f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/AliPayProperties.V1.html @@ -0,0 +1,417 @@ + + + + + + +AliPayProperties.V1 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.alipay
+

类 AliPayProperties.V1

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/AliPayProperties.html b/docs/apidocs/cn/felord/payment/alipay/AliPayProperties.html new file mode 100644 index 0000000..be2fc81 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/AliPayProperties.html @@ -0,0 +1,308 @@ + + + + + + +AliPayProperties (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.alipay
+

类 AliPayProperties

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayConfiguration.html b/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayConfiguration.html new file mode 100644 index 0000000..af5619d --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.alipay.AliPayConfiguration的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.alipay.AliPayConfiguration

+
+
没有cn.felord.payment.alipay.AliPayConfiguration的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayProperties.V1.html b/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayProperties.V1.html new file mode 100644 index 0000000..5bc57e1 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayProperties.V1.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.alipay.AliPayProperties.V1的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.alipay.AliPayProperties.V1

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayProperties.html b/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayProperties.html new file mode 100644 index 0000000..78688f0 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/class-use/AliPayProperties.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.alipay.AliPayProperties的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.alipay.AliPayProperties

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/package-frame.html b/docs/apidocs/cn/felord/payment/alipay/package-frame.html new file mode 100644 index 0000000..5556faf --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/package-frame.html @@ -0,0 +1,23 @@ + + + + + + +cn.felord.payment.alipay (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment.alipay

+
+

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/package-summary.html b/docs/apidocs/cn/felord/payment/alipay/package-summary.html new file mode 100644 index 0000000..734cbc4 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/package-summary.html @@ -0,0 +1,156 @@ + + + + + + +cn.felord.payment.alipay (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment.alipay

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/package-tree.html b/docs/apidocs/cn/felord/payment/alipay/package-tree.html new file mode 100644 index 0000000..f3fb8b3 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/package-tree.html @@ -0,0 +1,141 @@ + + + + + + +cn.felord.payment.alipay 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment.alipay的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/alipay/package-use.html b/docs/apidocs/cn/felord/payment/alipay/package-use.html new file mode 100644 index 0000000..7e3950e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/alipay/package-use.html @@ -0,0 +1,166 @@ + + + + + + +程序包 cn.felord.payment.alipay的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment.alipay

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/EnableMobilePay.html b/docs/apidocs/cn/felord/payment/autoconfigure/EnableMobilePay.html new file mode 100644 index 0000000..9eac4b2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/EnableMobilePay.html @@ -0,0 +1,175 @@ + + + + + + +EnableMobilePay (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.autoconfigure
+

注释类型 EnableMobilePay

+
+
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/PayConfiguration.html b/docs/apidocs/cn/felord/payment/autoconfigure/PayConfiguration.html new file mode 100644 index 0000000..1e93a63 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/PayConfiguration.html @@ -0,0 +1,247 @@ + + + + + + +PayConfiguration (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.autoconfigure
+

类 PayConfiguration

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/class-use/EnableMobilePay.html b/docs/apidocs/cn/felord/payment/autoconfigure/class-use/EnableMobilePay.html new file mode 100644 index 0000000..94c22ca --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/class-use/EnableMobilePay.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.autoconfigure.EnableMobilePay的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.autoconfigure.EnableMobilePay

+
+
没有cn.felord.payment.autoconfigure.EnableMobilePay的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/class-use/PayConfiguration.html b/docs/apidocs/cn/felord/payment/autoconfigure/class-use/PayConfiguration.html new file mode 100644 index 0000000..2f5f405 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/class-use/PayConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.autoconfigure.PayConfiguration的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.autoconfigure.PayConfiguration

+
+
没有cn.felord.payment.autoconfigure.PayConfiguration的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/package-frame.html b/docs/apidocs/cn/felord/payment/autoconfigure/package-frame.html new file mode 100644 index 0000000..570fefb --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/package-frame.html @@ -0,0 +1,25 @@ + + + + + + +cn.felord.payment.autoconfigure (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment.autoconfigure

+
+

+ +

注释类型

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/package-summary.html b/docs/apidocs/cn/felord/payment/autoconfigure/package-summary.html new file mode 100644 index 0000000..7c1c73f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/package-summary.html @@ -0,0 +1,159 @@ + + + + + + +cn.felord.payment.autoconfigure (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment.autoconfigure

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/package-tree.html b/docs/apidocs/cn/felord/payment/autoconfigure/package-tree.html new file mode 100644 index 0000000..688fad2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/package-tree.html @@ -0,0 +1,143 @@ + + + + + + +cn.felord.payment.autoconfigure 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment.autoconfigure的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +

注释类型分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/autoconfigure/package-use.html b/docs/apidocs/cn/felord/payment/autoconfigure/package-use.html new file mode 100644 index 0000000..f5d8685 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/autoconfigure/package-use.html @@ -0,0 +1,126 @@ + + + + + + +程序包 cn.felord.payment.autoconfigure的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment.autoconfigure

+
+
没有cn.felord.payment.autoconfigure的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/class-use/PayException.html b/docs/apidocs/cn/felord/payment/class-use/PayException.html new file mode 100644 index 0000000..39dcc64 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/class-use/PayException.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.PayException的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.PayException

+
+
没有cn.felord.payment.PayException的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/package-frame.html b/docs/apidocs/cn/felord/payment/package-frame.html new file mode 100644 index 0000000..cad14b3 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/package-frame.html @@ -0,0 +1,21 @@ + + + + + + +cn.felord.payment (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment

+
+

异常错误

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/package-summary.html b/docs/apidocs/cn/felord/payment/package-summary.html new file mode 100644 index 0000000..5e5c60a --- /dev/null +++ b/docs/apidocs/cn/felord/payment/package-summary.html @@ -0,0 +1,144 @@ + + + + + + +cn.felord.payment (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/package-tree.html b/docs/apidocs/cn/felord/payment/package-tree.html new file mode 100644 index 0000000..d11ce66 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +cn.felord.payment 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/package-use.html b/docs/apidocs/cn/felord/payment/package-use.html new file mode 100644 index 0000000..9f7ca8e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/package-use.html @@ -0,0 +1,126 @@ + + + + + + +程序包 cn.felord.payment的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment

+
+
没有cn.felord.payment的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/WechatPayConfiguration.html b/docs/apidocs/cn/felord/payment/wechat/WechatPayConfiguration.html new file mode 100644 index 0000000..a5931fc --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/WechatPayConfiguration.html @@ -0,0 +1,405 @@ + + + + + + +WechatPayConfiguration (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat
+

类 WechatPayConfiguration

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/WechatPayProperties.V3.html b/docs/apidocs/cn/felord/payment/wechat/WechatPayProperties.V3.html new file mode 100644 index 0000000..7a7d43d --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/WechatPayProperties.V3.html @@ -0,0 +1,385 @@ + + + + + + +WechatPayProperties.V3 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat
+

类 WechatPayProperties.V3

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/WechatPayProperties.html b/docs/apidocs/cn/felord/payment/wechat/WechatPayProperties.html new file mode 100644 index 0000000..5611684 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/WechatPayProperties.html @@ -0,0 +1,307 @@ + + + + + + +WechatPayProperties (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat
+

类 WechatPayProperties

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/WechatPayResponseErrorHandler.html b/docs/apidocs/cn/felord/payment/wechat/WechatPayResponseErrorHandler.html new file mode 100644 index 0000000..71dc9c5 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/WechatPayResponseErrorHandler.html @@ -0,0 +1,311 @@ + + + + + + +WechatPayResponseErrorHandler (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat
+

类 WechatPayResponseErrorHandler

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayConfiguration.html b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayConfiguration.html new file mode 100644 index 0000000..00bd3fd --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.wechat.WechatPayConfiguration的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.WechatPayConfiguration

+
+
没有cn.felord.payment.wechat.WechatPayConfiguration的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayProperties.V3.html b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayProperties.V3.html new file mode 100644 index 0000000..d2d18ad --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayProperties.V3.html @@ -0,0 +1,192 @@ + + + + + + +类 cn.felord.payment.wechat.WechatPayProperties.V3的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.WechatPayProperties.V3

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayProperties.html b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayProperties.html new file mode 100644 index 0000000..983c022 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayProperties.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.WechatPayProperties的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.WechatPayProperties

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayResponseErrorHandler.html b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayResponseErrorHandler.html new file mode 100644 index 0000000..0fa0cb9 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/class-use/WechatPayResponseErrorHandler.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.wechat.WechatPayResponseErrorHandler的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.WechatPayResponseErrorHandler

+
+
没有cn.felord.payment.wechat.WechatPayResponseErrorHandler的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/BankCode.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/BankCode.html new file mode 100644 index 0000000..07e0a52 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/BankCode.html @@ -0,0 +1,1091 @@ + + + + + + +BankCode (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 BankCode

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/CouponBgColor.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/CouponBgColor.html new file mode 100644 index 0000000..195a4ca --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/CouponBgColor.html @@ -0,0 +1,497 @@ + + + + + + +CouponBgColor (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 CouponBgColor

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/CouponStatus.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/CouponStatus.html new file mode 100644 index 0000000..7bf5322 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/CouponStatus.html @@ -0,0 +1,371 @@ + + + + + + +CouponStatus (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 CouponStatus

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/StockStatus.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/StockStatus.html new file mode 100644 index 0000000..8ba06e9 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/StockStatus.html @@ -0,0 +1,490 @@ + + + + + + +StockStatus (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 StockStatus

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/TradeState.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/TradeState.html new file mode 100644 index 0000000..740e291 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/TradeState.html @@ -0,0 +1,431 @@ + + + + + + +TradeState (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 TradeState

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/TradeType.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/TradeType.html new file mode 100644 index 0000000..65f3cae --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/TradeType.html @@ -0,0 +1,416 @@ + + + + + + +TradeType (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 TradeType

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/WeChatServer.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/WeChatServer.html new file mode 100644 index 0000000..205ec03 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/WeChatServer.html @@ -0,0 +1,492 @@ + + + + + + +WeChatServer (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 WeChatServer

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/WechatPayV3Type.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/WechatPayV3Type.html new file mode 100644 index 0000000..e3f49c2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/WechatPayV3Type.html @@ -0,0 +1,878 @@ + + + + + + +WechatPayV3Type (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.enumeration
+

枚举 WechatPayV3Type

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/BankCode.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/BankCode.html new file mode 100644 index 0000000..84e5f60 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/BankCode.html @@ -0,0 +1,175 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.BankCode的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.BankCode

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/CouponBgColor.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/CouponBgColor.html new file mode 100644 index 0000000..3c77c7c --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/CouponBgColor.html @@ -0,0 +1,199 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.CouponBgColor的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.CouponBgColor

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/CouponStatus.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/CouponStatus.html new file mode 100644 index 0000000..65ca370 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/CouponStatus.html @@ -0,0 +1,175 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.CouponStatus的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.CouponStatus

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/StockStatus.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/StockStatus.html new file mode 100644 index 0000000..10e5206 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/StockStatus.html @@ -0,0 +1,201 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.StockStatus的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.StockStatus

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/TradeState.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/TradeState.html new file mode 100644 index 0000000..030ca75 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/TradeState.html @@ -0,0 +1,175 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.TradeState的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.TradeState

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/TradeType.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/TradeType.html new file mode 100644 index 0000000..0c1d49f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/TradeType.html @@ -0,0 +1,175 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.TradeType的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.TradeType

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/WeChatServer.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/WeChatServer.html new file mode 100644 index 0000000..cfca260 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/WeChatServer.html @@ -0,0 +1,190 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.WeChatServer的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.WeChatServer

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/WechatPayV3Type.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/WechatPayV3Type.html new file mode 100644 index 0000000..f5afafb --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/class-use/WechatPayV3Type.html @@ -0,0 +1,374 @@ + + + + + + +类 cn.felord.payment.wechat.enumeration.WechatPayV3Type的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.enumeration.WechatPayV3Type

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/package-frame.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-frame.html new file mode 100644 index 0000000..abf8680 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-frame.html @@ -0,0 +1,28 @@ + + + + + + +cn.felord.payment.wechat.enumeration (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment.wechat.enumeration

+
+

枚举

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/package-summary.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-summary.html new file mode 100644 index 0000000..d07f079 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-summary.html @@ -0,0 +1,190 @@ + + + + + + +cn.felord.payment.wechat.enumeration (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment.wechat.enumeration

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/package-tree.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-tree.html new file mode 100644 index 0000000..949b4c2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-tree.html @@ -0,0 +1,150 @@ + + + + + + +cn.felord.payment.wechat.enumeration 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment.wechat.enumeration的分层结构

+程序包分层结构: + +
+
+

枚举分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/enumeration/package-use.html b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-use.html new file mode 100644 index 0000000..8d958db --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/enumeration/package-use.html @@ -0,0 +1,247 @@ + + + + + + +程序包 cn.felord.payment.wechat.enumeration的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment.wechat.enumeration

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/package-frame.html b/docs/apidocs/cn/felord/payment/wechat/package-frame.html new file mode 100644 index 0000000..d88b0a2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/package-frame.html @@ -0,0 +1,24 @@ + + + + + + +cn.felord.payment.wechat (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment.wechat

+
+

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/package-summary.html b/docs/apidocs/cn/felord/payment/wechat/package-summary.html new file mode 100644 index 0000000..2d36d8b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/package-summary.html @@ -0,0 +1,162 @@ + + + + + + +cn.felord.payment.wechat (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment.wechat

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/package-tree.html b/docs/apidocs/cn/felord/payment/wechat/package-tree.html new file mode 100644 index 0000000..e09df48 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/package-tree.html @@ -0,0 +1,146 @@ + + + + + + +cn.felord.payment.wechat 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment.wechat的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/package-use.html b/docs/apidocs/cn/felord/payment/wechat/package-use.html new file mode 100644 index 0000000..1818888 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/package-use.html @@ -0,0 +1,187 @@ + + + + + + +程序包 cn.felord.payment.wechat的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment.wechat

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/AbstractApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/AbstractApi.html new file mode 100644 index 0000000..476ac63 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/AbstractApi.html @@ -0,0 +1,519 @@ + + + + + + +AbstractApi (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 AbstractApi

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage.html b/docs/apidocs/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage.html new file mode 100644 index 0000000..ce5d5eb --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage.html @@ -0,0 +1,447 @@ + + + + + + +ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.html b/docs/apidocs/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.html new file mode 100644 index 0000000..04fba0a --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.html @@ -0,0 +1,754 @@ + + + + + + +ExtensionFormHttpMessageConverter (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 ExtensionFormHttpMessageConverter

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/KeyPairFactory.html b/docs/apidocs/cn/felord/payment/wechat/v3/KeyPairFactory.html new file mode 100644 index 0000000..9d26ca4 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/KeyPairFactory.html @@ -0,0 +1,344 @@ + + + + + + +KeyPairFactory (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 KeyPairFactory

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/SignatureProvider.html b/docs/apidocs/cn/felord/payment/wechat/v3/SignatureProvider.html new file mode 100644 index 0000000..2aedca9 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/SignatureProvider.html @@ -0,0 +1,553 @@ + + + + + + +SignatureProvider (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 SignatureProvider

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatApiProvider.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatApiProvider.html new file mode 100644 index 0000000..0db0562 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatApiProvider.html @@ -0,0 +1,401 @@ + + + + + + +WechatApiProvider (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatApiProvider

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatCombinePayApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatCombinePayApi.html new file mode 100644 index 0000000..2ba35a6 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatCombinePayApi.html @@ -0,0 +1,499 @@ + + + + + + +WechatCombinePayApi (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatCombinePayApi

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatDirectPayApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatDirectPayApi.html new file mode 100644 index 0000000..0d067dc --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatDirectPayApi.html @@ -0,0 +1,488 @@ + + + + + + +WechatDirectPayApi (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatDirectPayApi

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatMarketingFavorApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatMarketingFavorApi.html new file mode 100644 index 0000000..51b3609 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatMarketingFavorApi.html @@ -0,0 +1,1026 @@ + + + + + + +WechatMarketingFavorApi (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatMarketingFavorApi

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatMetaBean.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatMetaBean.html new file mode 100644 index 0000000..3bf9558 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatMetaBean.html @@ -0,0 +1,333 @@ + + + + + + +WechatMetaBean (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatMetaBean

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatMetaContainer.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatMetaContainer.html new file mode 100644 index 0000000..d723b20 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatMetaContainer.html @@ -0,0 +1,405 @@ + + + + + + +WechatMetaContainer (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatMetaContainer

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayCallback.EventType.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayCallback.EventType.html new file mode 100644 index 0000000..4acbdc8 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayCallback.EventType.html @@ -0,0 +1,399 @@ + + + + + + +WechatPayCallback.EventType (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

枚举 WechatPayCallback.EventType

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayCallback.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayCallback.html new file mode 100644 index 0000000..10cd097 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayCallback.html @@ -0,0 +1,473 @@ + + + + + + +WechatPayCallback (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatPayCallback

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayClient.Executor.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayClient.Executor.html new file mode 100644 index 0000000..1ff887e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayClient.Executor.html @@ -0,0 +1,562 @@ + + + + + + +WechatPayClient.Executor (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatPayClient.Executor<M>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayClient.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayClient.html new file mode 100644 index 0000000..ab49c74 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatPayClient.html @@ -0,0 +1,415 @@ + + + + + + +WechatPayClient (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatPayClient

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatRequestEntity.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatRequestEntity.html new file mode 100644 index 0000000..148bb20 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatRequestEntity.html @@ -0,0 +1,427 @@ + + + + + + +WechatRequestEntity (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatRequestEntity<T>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/WechatResponseEntity.html b/docs/apidocs/cn/felord/payment/wechat/v3/WechatResponseEntity.html new file mode 100644 index 0000000..8b50a87 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/WechatResponseEntity.html @@ -0,0 +1,446 @@ + + + + + + +WechatResponseEntity (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3
+

类 WechatResponseEntity<T>

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/AbstractApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/AbstractApi.html new file mode 100644 index 0000000..08e3792 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/AbstractApi.html @@ -0,0 +1,180 @@ + + + + + + +类 cn.felord.payment.wechat.v3.AbstractApi的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.AbstractApi

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage.html new file mode 100644 index 0000000..e1ba78c --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage

+
+
没有cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/ExtensionFormHttpMessageConverter.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/ExtensionFormHttpMessageConverter.html new file mode 100644 index 0000000..37e05df --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/ExtensionFormHttpMessageConverter.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter

+
+
没有cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/KeyPairFactory.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/KeyPairFactory.html new file mode 100644 index 0000000..1f7180f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/KeyPairFactory.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.wechat.v3.KeyPairFactory的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.KeyPairFactory

+
+
没有cn.felord.payment.wechat.v3.KeyPairFactory的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/SignatureProvider.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/SignatureProvider.html new file mode 100644 index 0000000..3869ba3 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/SignatureProvider.html @@ -0,0 +1,261 @@ + + + + + + +类 cn.felord.payment.wechat.v3.SignatureProvider的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.SignatureProvider

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatApiProvider.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatApiProvider.html new file mode 100644 index 0000000..505e74f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatApiProvider.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatApiProvider的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatApiProvider

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatCombinePayApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatCombinePayApi.html new file mode 100644 index 0000000..e3daa48 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatCombinePayApi.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatCombinePayApi的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatCombinePayApi

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatDirectPayApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatDirectPayApi.html new file mode 100644 index 0000000..c2c115e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatDirectPayApi.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatDirectPayApi的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatDirectPayApi

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMarketingFavorApi.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMarketingFavorApi.html new file mode 100644 index 0000000..c4e91a9 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMarketingFavorApi.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatMarketingFavorApi的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatMarketingFavorApi

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMetaBean.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMetaBean.html new file mode 100644 index 0000000..5412cde --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMetaBean.html @@ -0,0 +1,224 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatMetaBean的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatMetaBean

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMetaContainer.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMetaContainer.html new file mode 100644 index 0000000..606dac2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatMetaContainer.html @@ -0,0 +1,241 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatMetaContainer的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatMetaContainer

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayCallback.EventType.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayCallback.EventType.html new file mode 100644 index 0000000..cec3f65 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayCallback.EventType.html @@ -0,0 +1,191 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatPayCallback.EventType的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatPayCallback.EventType

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayCallback.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayCallback.html new file mode 100644 index 0000000..95f05c7 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayCallback.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatPayCallback的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatPayCallback

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayClient.Executor.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayClient.Executor.html new file mode 100644 index 0000000..e5841c7 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayClient.Executor.html @@ -0,0 +1,181 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatPayClient.Executor的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatPayClient.Executor

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayClient.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayClient.html new file mode 100644 index 0000000..499502e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatPayClient.html @@ -0,0 +1,265 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatPayClient的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatPayClient

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatRequestEntity.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatRequestEntity.html new file mode 100644 index 0000000..1ee6e12 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatRequestEntity.html @@ -0,0 +1,208 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatRequestEntity的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatRequestEntity

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatResponseEntity.html b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatResponseEntity.html new file mode 100644 index 0000000..9c8c065 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/class-use/WechatResponseEntity.html @@ -0,0 +1,366 @@ + + + + + + +类 cn.felord.payment.wechat.v3.WechatResponseEntity的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.WechatResponseEntity

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/Amount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/Amount.html new file mode 100644 index 0000000..b8d2edf --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/Amount.html @@ -0,0 +1,301 @@ + + + + + + +Amount (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 Amount

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CallbackParams.Resource.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CallbackParams.Resource.html new file mode 100644 index 0000000..b947802 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CallbackParams.Resource.html @@ -0,0 +1,347 @@ + + + + + + +CallbackParams.Resource (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CallbackParams.Resource

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CallbackParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CallbackParams.html new file mode 100644 index 0000000..b92bdf5 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CallbackParams.html @@ -0,0 +1,386 @@ + + + + + + +CallbackParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CallbackParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.CombineAmount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.CombineAmount.html new file mode 100644 index 0000000..c49effd --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.CombineAmount.html @@ -0,0 +1,337 @@ + + + + + + +CombineTransactionConsumeData.CombineAmount (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CombineTransactionConsumeData.CombineAmount

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.SubOrderCallback.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.SubOrderCallback.html new file mode 100644 index 0000000..48946f1 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.SubOrderCallback.html @@ -0,0 +1,433 @@ + + + + + + +CombineTransactionConsumeData.SubOrderCallback (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CombineTransactionConsumeData.SubOrderCallback

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.html new file mode 100644 index 0000000..741c243 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CombineTransactionConsumeData.html @@ -0,0 +1,392 @@ + + + + + + +CombineTransactionConsumeData (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CombineTransactionConsumeData

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/ConsumeInformation.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/ConsumeInformation.html new file mode 100644 index 0000000..7a132d5 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/ConsumeInformation.html @@ -0,0 +1,321 @@ + + + + + + +ConsumeInformation (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 ConsumeInformation

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponAvailableTime.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponAvailableTime.html new file mode 100644 index 0000000..d70c57d --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponAvailableTime.html @@ -0,0 +1,316 @@ + + + + + + +CouponAvailableTime (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CouponAvailableTime

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponConsumeData.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponConsumeData.html new file mode 100644 index 0000000..0ef0d6c --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponConsumeData.html @@ -0,0 +1,477 @@ + + + + + + +CouponConsumeData (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CouponConsumeData

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponDetailsQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponDetailsQueryParams.html new file mode 100644 index 0000000..5a00b58 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponDetailsQueryParams.html @@ -0,0 +1,305 @@ + + + + + + +CouponDetailsQueryParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CouponDetailsQueryParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponUseRule.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponUseRule.html new file mode 100644 index 0000000..74ae0ab --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/CouponUseRule.html @@ -0,0 +1,360 @@ + + + + + + +CouponUseRule (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 CouponUseRule

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/Detail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/Detail.html new file mode 100644 index 0000000..27e8412 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/Detail.html @@ -0,0 +1,316 @@ + + + + + + +Detail (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 Detail

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/DiscountTo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/DiscountTo.html new file mode 100644 index 0000000..03d82da --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/DiscountTo.html @@ -0,0 +1,295 @@ + + + + + + +DiscountTo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 DiscountTo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/FixAvailableTime.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/FixAvailableTime.html new file mode 100644 index 0000000..5994494 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/FixAvailableTime.html @@ -0,0 +1,317 @@ + + + + + + +FixAvailableTime (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 FixAvailableTime

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/FixedNormalCoupon.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/FixedNormalCoupon.html new file mode 100644 index 0000000..fce08a2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/FixedNormalCoupon.html @@ -0,0 +1,303 @@ + + + + + + +FixedNormalCoupon (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 FixedNormalCoupon

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/Goods.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/Goods.html new file mode 100644 index 0000000..30e9f7c --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/Goods.html @@ -0,0 +1,348 @@ + + + + + + +Goods (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 Goods

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/GoodsDetail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/GoodsDetail.html new file mode 100644 index 0000000..072c7ec --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/GoodsDetail.html @@ -0,0 +1,321 @@ + + + + + + +GoodsDetail (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 GoodsDetail

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/H5Info.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/H5Info.html new file mode 100644 index 0000000..d540637 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/H5Info.html @@ -0,0 +1,348 @@ + + + + + + +H5Info (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 H5Info

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/MchQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/MchQueryParams.html new file mode 100644 index 0000000..48dbc46 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/MchQueryParams.html @@ -0,0 +1,325 @@ + + + + + + +MchQueryParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 MchQueryParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/NormalCouponInformation.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/NormalCouponInformation.html new file mode 100644 index 0000000..22f65c9 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/NormalCouponInformation.html @@ -0,0 +1,295 @@ + + + + + + +NormalCouponInformation (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 NormalCouponInformation

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/PatternInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/PatternInfo.html new file mode 100644 index 0000000..c876707 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/PatternInfo.html @@ -0,0 +1,349 @@ + + + + + + +PatternInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 PatternInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/PayParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/PayParams.html new file mode 100644 index 0000000..bb8b22c --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/PayParams.html @@ -0,0 +1,458 @@ + + + + + + +PayParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 PayParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/Payer.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/Payer.html new file mode 100644 index 0000000..a8c7354 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/Payer.html @@ -0,0 +1,316 @@ + + + + + + +Payer (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 Payer

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/PromotionDetail.GoodsDetail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/PromotionDetail.GoodsDetail.html new file mode 100644 index 0000000..ed11975 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/PromotionDetail.GoodsDetail.html @@ -0,0 +1,353 @@ + + + + + + +PromotionDetail.GoodsDetail (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 PromotionDetail.GoodsDetail

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/PromotionDetail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/PromotionDetail.html new file mode 100644 index 0000000..4def24e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/PromotionDetail.html @@ -0,0 +1,466 @@ + + + + + + +PromotionDetail (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 PromotionDetail

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/ResponseSignVerifyParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/ResponseSignVerifyParams.html new file mode 100644 index 0000000..9446d7e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/ResponseSignVerifyParams.html @@ -0,0 +1,351 @@ + + + + + + +ResponseSignVerifyParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 ResponseSignVerifyParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/SceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/SceneInfo.html new file mode 100644 index 0000000..1852795 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/SceneInfo.html @@ -0,0 +1,333 @@ + + + + + + +SceneInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 SceneInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/SettleInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/SettleInfo.html new file mode 100644 index 0000000..4a454a6 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/SettleInfo.html @@ -0,0 +1,300 @@ + + + + + + +SettleInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 SettleInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/SingleitemDiscountOff.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/SingleitemDiscountOff.html new file mode 100644 index 0000000..c5eb3bb --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/SingleitemDiscountOff.html @@ -0,0 +1,282 @@ + + + + + + +SingleitemDiscountOff (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 SingleitemDiscountOff

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/StockUseRule.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/StockUseRule.html new file mode 100644 index 0000000..843f5bf --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/StockUseRule.html @@ -0,0 +1,366 @@ + + + + + + +StockUseRule (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 StockUseRule

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksCreateParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksCreateParams.html new file mode 100644 index 0000000..4d708e2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksCreateParams.html @@ -0,0 +1,465 @@ + + + + + + +StocksCreateParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 StocksCreateParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksQueryParams.html new file mode 100644 index 0000000..741cb9f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksQueryParams.html @@ -0,0 +1,379 @@ + + + + + + +StocksQueryParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 StocksQueryParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksSendParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksSendParams.html new file mode 100644 index 0000000..b5d3572 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/StocksSendParams.html @@ -0,0 +1,383 @@ + + + + + + +StocksSendParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 StocksSendParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/StoreInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/StoreInfo.html new file mode 100644 index 0000000..865a346 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/StoreInfo.html @@ -0,0 +1,332 @@ + + + + + + +StoreInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 StoreInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.Amount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.Amount.html new file mode 100644 index 0000000..76e1bb9 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.Amount.html @@ -0,0 +1,337 @@ + + + + + + +TransactionConsumeData.Amount (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 TransactionConsumeData.Amount

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.Payer.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.Payer.html new file mode 100644 index 0000000..115955a --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.Payer.html @@ -0,0 +1,289 @@ + + + + + + +TransactionConsumeData.Payer (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 TransactionConsumeData.Payer

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.SceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.SceneInfo.html new file mode 100644 index 0000000..7a47860 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.SceneInfo.html @@ -0,0 +1,289 @@ + + + + + + +TransactionConsumeData.SceneInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 TransactionConsumeData.SceneInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.html new file mode 100644 index 0000000..b5fae88 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionConsumeData.html @@ -0,0 +1,525 @@ + + + + + + +TransactionConsumeData (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 TransactionConsumeData

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionQueryParams.html new file mode 100644 index 0000000..9c8d0e0 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/TransactionQueryParams.html @@ -0,0 +1,294 @@ + + + + + + +TransactionQueryParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 TransactionQueryParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.Status.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.Status.html new file mode 100644 index 0000000..9ca3077 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.Status.html @@ -0,0 +1,360 @@ + + + + + + +UserCouponsQueryParams.Status (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

枚举 UserCouponsQueryParams.Status

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.html new file mode 100644 index 0000000..83e1934 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.html @@ -0,0 +1,434 @@ + + + + + + +UserCouponsQueryParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model
+

类 UserCouponsQueryParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Amount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Amount.html new file mode 100644 index 0000000..e0dfd8b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Amount.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.Amount的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.Amount

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CallbackParams.Resource.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CallbackParams.Resource.html new file mode 100644 index 0000000..4027efc --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CallbackParams.Resource.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.CallbackParams.Resource的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.CallbackParams.Resource

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CallbackParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CallbackParams.html new file mode 100644 index 0000000..bd663fe --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CallbackParams.html @@ -0,0 +1,126 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.CallbackParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.CallbackParams

+
+
没有cn.felord.payment.wechat.v3.model.CallbackParams的用法
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.CombineAmount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.CombineAmount.html new file mode 100644 index 0000000..e564ea7 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.CombineAmount.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.CombineAmount的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.CombineAmount

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.SubOrderCallback.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.SubOrderCallback.html new file mode 100644 index 0000000..f15718f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.SubOrderCallback.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.SubOrderCallback的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData.SubOrderCallback

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.html new file mode 100644 index 0000000..bdf42f2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CombineTransactionConsumeData.html @@ -0,0 +1,169 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/ConsumeInformation.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/ConsumeInformation.html new file mode 100644 index 0000000..325c0ad --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/ConsumeInformation.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.ConsumeInformation的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.ConsumeInformation

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponAvailableTime.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponAvailableTime.html new file mode 100644 index 0000000..10bc55b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponAvailableTime.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.CouponAvailableTime的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.CouponAvailableTime

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponConsumeData.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponConsumeData.html new file mode 100644 index 0000000..6db3eed --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponConsumeData.html @@ -0,0 +1,169 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.CouponConsumeData的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.CouponConsumeData

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponDetailsQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponDetailsQueryParams.html new file mode 100644 index 0000000..c9801be --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponDetailsQueryParams.html @@ -0,0 +1,177 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.CouponDetailsQueryParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.CouponDetailsQueryParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponUseRule.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponUseRule.html new file mode 100644 index 0000000..cab9642 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/CouponUseRule.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.CouponUseRule的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.CouponUseRule

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Detail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Detail.html new file mode 100644 index 0000000..a68ba76 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Detail.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.Detail的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.Detail

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/DiscountTo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/DiscountTo.html new file mode 100644 index 0000000..8a47b65 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/DiscountTo.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.DiscountTo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.DiscountTo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/FixAvailableTime.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/FixAvailableTime.html new file mode 100644 index 0000000..b13bead --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/FixAvailableTime.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.FixAvailableTime的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.FixAvailableTime

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/FixedNormalCoupon.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/FixedNormalCoupon.html new file mode 100644 index 0000000..27adf12 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/FixedNormalCoupon.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.FixedNormalCoupon的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.FixedNormalCoupon

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Goods.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Goods.html new file mode 100644 index 0000000..6a4bd00 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Goods.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.Goods的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.Goods

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/GoodsDetail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/GoodsDetail.html new file mode 100644 index 0000000..a8f52b2 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/GoodsDetail.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.GoodsDetail的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.GoodsDetail

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/H5Info.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/H5Info.html new file mode 100644 index 0000000..69b4f75 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/H5Info.html @@ -0,0 +1,190 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.H5Info的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.H5Info

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/MchQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/MchQueryParams.html new file mode 100644 index 0000000..f10c3f1 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/MchQueryParams.html @@ -0,0 +1,185 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.MchQueryParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.MchQueryParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/NormalCouponInformation.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/NormalCouponInformation.html new file mode 100644 index 0000000..8831d11 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/NormalCouponInformation.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.NormalCouponInformation的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.NormalCouponInformation

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PatternInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PatternInfo.html new file mode 100644 index 0000000..607bb5d --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PatternInfo.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.PatternInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.PatternInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PayParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PayParams.html new file mode 100644 index 0000000..ca449a0 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PayParams.html @@ -0,0 +1,191 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.PayParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.PayParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Payer.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Payer.html new file mode 100644 index 0000000..b14d348 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/Payer.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.Payer的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.Payer

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PromotionDetail.GoodsDetail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PromotionDetail.GoodsDetail.html new file mode 100644 index 0000000..821703b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PromotionDetail.GoodsDetail.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PromotionDetail.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PromotionDetail.html new file mode 100644 index 0000000..4350b77 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/PromotionDetail.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.PromotionDetail的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.PromotionDetail

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/ResponseSignVerifyParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/ResponseSignVerifyParams.html new file mode 100644 index 0000000..e8853eb --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/ResponseSignVerifyParams.html @@ -0,0 +1,196 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SceneInfo.html new file mode 100644 index 0000000..9ef139c --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SceneInfo.html @@ -0,0 +1,174 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.SceneInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.SceneInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SettleInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SettleInfo.html new file mode 100644 index 0000000..627c2fc --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SettleInfo.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.SettleInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.SettleInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SingleitemDiscountOff.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SingleitemDiscountOff.html new file mode 100644 index 0000000..5140781 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/SingleitemDiscountOff.html @@ -0,0 +1,166 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.SingleitemDiscountOff的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.SingleitemDiscountOff

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StockUseRule.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StockUseRule.html new file mode 100644 index 0000000..ba214aa --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StockUseRule.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.StockUseRule的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.StockUseRule

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksCreateParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksCreateParams.html new file mode 100644 index 0000000..996c82e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksCreateParams.html @@ -0,0 +1,177 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.StocksCreateParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.StocksCreateParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksQueryParams.html new file mode 100644 index 0000000..bb605c5 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksQueryParams.html @@ -0,0 +1,177 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.StocksQueryParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.StocksQueryParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksSendParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksSendParams.html new file mode 100644 index 0000000..d08b5bb --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StocksSendParams.html @@ -0,0 +1,177 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.StocksSendParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.StocksSendParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StoreInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StoreInfo.html new file mode 100644 index 0000000..e767ab3 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/StoreInfo.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.StoreInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.StoreInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.Amount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.Amount.html new file mode 100644 index 0000000..00f102f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.Amount.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.TransactionConsumeData.Amount的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.TransactionConsumeData.Amount

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.Payer.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.Payer.html new file mode 100644 index 0000000..77ff422 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.Payer.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.TransactionConsumeData.Payer的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.TransactionConsumeData.Payer

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.SceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.SceneInfo.html new file mode 100644 index 0000000..5ccbd81 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.SceneInfo.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.TransactionConsumeData.SceneInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.TransactionConsumeData.SceneInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.html new file mode 100644 index 0000000..acddfc4 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionConsumeData.html @@ -0,0 +1,169 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.TransactionConsumeData的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.TransactionConsumeData

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionQueryParams.html new file mode 100644 index 0000000..f0999f0 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/TransactionQueryParams.html @@ -0,0 +1,179 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.TransactionQueryParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.TransactionQueryParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/UserCouponsQueryParams.Status.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/UserCouponsQueryParams.Status.html new file mode 100644 index 0000000..97dab2b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/UserCouponsQueryParams.Status.html @@ -0,0 +1,190 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.UserCouponsQueryParams.Status的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.UserCouponsQueryParams.Status

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/UserCouponsQueryParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/UserCouponsQueryParams.html new file mode 100644 index 0000000..8d6688f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/class-use/UserCouponsQueryParams.html @@ -0,0 +1,177 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.UserCouponsQueryParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.UserCouponsQueryParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineAmount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineAmount.html new file mode 100644 index 0000000..5ce1570 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineAmount.html @@ -0,0 +1,305 @@ + + + + + + +CombineAmount (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombineAmount

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.ClosingSubOrder.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.ClosingSubOrder.html new file mode 100644 index 0000000..959323f --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.ClosingSubOrder.html @@ -0,0 +1,325 @@ + + + + + + +CombineCloseParams.ClosingSubOrder (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombineCloseParams.ClosingSubOrder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.html new file mode 100644 index 0000000..cb9f6dc --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.html @@ -0,0 +1,338 @@ + + + + + + +CombineCloseParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombineCloseParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineH5PayParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineH5PayParams.html new file mode 100644 index 0000000..df716f3 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineH5PayParams.html @@ -0,0 +1,415 @@ + + + + + + +CombineH5PayParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombineH5PayParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineH5SceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineH5SceneInfo.html new file mode 100644 index 0000000..d10db10 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineH5SceneInfo.html @@ -0,0 +1,280 @@ + + + + + + +CombineH5SceneInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombineH5SceneInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombinePayParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombinePayParams.html new file mode 100644 index 0000000..d4abe57 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombinePayParams.html @@ -0,0 +1,415 @@ + + + + + + +CombinePayParams (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombinePayParams

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombinePayerInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombinePayerInfo.html new file mode 100644 index 0000000..62529a1 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombinePayerInfo.html @@ -0,0 +1,285 @@ + + + + + + +CombinePayerInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombinePayerInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineSceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineSceneInfo.html new file mode 100644 index 0000000..17f5d01 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/CombineSceneInfo.html @@ -0,0 +1,305 @@ + + + + + + +CombineSceneInfo (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 CombineSceneInfo

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/SubOrder.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/SubOrder.html new file mode 100644 index 0000000..66e321a --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/SubOrder.html @@ -0,0 +1,385 @@ + + + + + + +SubOrder (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + + +
+
cn.felord.payment.wechat.v3.model.combine
+

类 SubOrder

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineAmount.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineAmount.html new file mode 100644 index 0000000..bb87fdf --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineAmount.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineAmount的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineAmount

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineCloseParams.ClosingSubOrder.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineCloseParams.ClosingSubOrder.html new file mode 100644 index 0000000..4c46b8e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineCloseParams.ClosingSubOrder.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineCloseParams.ClosingSubOrder的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineCloseParams.ClosingSubOrder

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineCloseParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineCloseParams.html new file mode 100644 index 0000000..6064e48 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineCloseParams.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineCloseParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineCloseParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineH5PayParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineH5PayParams.html new file mode 100644 index 0000000..7463a2e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineH5PayParams.html @@ -0,0 +1,175 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineH5SceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineH5SceneInfo.html new file mode 100644 index 0000000..7a628ef --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineH5SceneInfo.html @@ -0,0 +1,168 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineH5SceneInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineH5SceneInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombinePayParams.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombinePayParams.html new file mode 100644 index 0000000..fedc484 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombinePayParams.html @@ -0,0 +1,191 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombinePayParams的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombinePayParams

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombinePayerInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombinePayerInfo.html new file mode 100644 index 0000000..03ecbda --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombinePayerInfo.html @@ -0,0 +1,198 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombinePayerInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombinePayerInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineSceneInfo.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineSceneInfo.html new file mode 100644 index 0000000..5b2f46b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/CombineSceneInfo.html @@ -0,0 +1,181 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.CombineSceneInfo的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.CombineSceneInfo

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/SubOrder.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/SubOrder.html new file mode 100644 index 0000000..a680273 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/class-use/SubOrder.html @@ -0,0 +1,174 @@ + + + + + + +类 cn.felord.payment.wechat.v3.model.combine.SubOrder的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

类的使用
cn.felord.payment.wechat.v3.model.combine.SubOrder

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-frame.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-frame.html new file mode 100644 index 0000000..30bba08 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-frame.html @@ -0,0 +1,29 @@ + + + + + + +cn.felord.payment.wechat.v3.model.combine (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment.wechat.v3.model.combine

+
+

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-summary.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-summary.html new file mode 100644 index 0000000..60688b3 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-summary.html @@ -0,0 +1,192 @@ + + + + + + +cn.felord.payment.wechat.v3.model.combine (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment.wechat.v3.model.combine

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-tree.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-tree.html new file mode 100644 index 0000000..603513c --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-tree.html @@ -0,0 +1,150 @@ + + + + + + +cn.felord.payment.wechat.v3.model.combine 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment.wechat.v3.model.combine的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-use.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-use.html new file mode 100644 index 0000000..bf5f2dc --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/combine/package-use.html @@ -0,0 +1,236 @@ + + + + + + +程序包 cn.felord.payment.wechat.v3.model.combine的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment.wechat.v3.model.combine

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/package-frame.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-frame.html new file mode 100644 index 0000000..04d9b0b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-frame.html @@ -0,0 +1,64 @@ + + + + + + +cn.felord.payment.wechat.v3.model (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment.wechat.v3.model

+
+

+ +

枚举

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/package-summary.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-summary.html new file mode 100644 index 0000000..0e3f283 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-summary.html @@ -0,0 +1,383 @@ + + + + + + +cn.felord.payment.wechat.v3.model (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment.wechat.v3.model

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/package-tree.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-tree.html new file mode 100644 index 0000000..65bd9b5 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-tree.html @@ -0,0 +1,190 @@ + + + + + + +cn.felord.payment.wechat.v3.model 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment.wechat.v3.model的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +

枚举分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/model/package-use.html b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-use.html new file mode 100644 index 0000000..33ff09e --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/model/package-use.html @@ -0,0 +1,377 @@ + + + + + + +程序包 cn.felord.payment.wechat.v3.model的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment.wechat.v3.model

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/package-frame.html b/docs/apidocs/cn/felord/payment/wechat/v3/package-frame.html new file mode 100644 index 0000000..835b1ab --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/package-frame.html @@ -0,0 +1,40 @@ + + + + + + +cn.felord.payment.wechat.v3 (payment-spring-boot 1.0.0.RELEASE API) + + + + + +

cn.felord.payment.wechat.v3

+
+

+ +

枚举

+ +
+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/package-summary.html b/docs/apidocs/cn/felord/payment/wechat/v3/package-summary.html new file mode 100644 index 0000000..6ec31c8 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/package-summary.html @@ -0,0 +1,259 @@ + + + + + + +cn.felord.payment.wechat.v3 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包 cn.felord.payment.wechat.v3

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/package-tree.html b/docs/apidocs/cn/felord/payment/wechat/v3/package-tree.html new file mode 100644 index 0000000..8dbbf08 --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/package-tree.html @@ -0,0 +1,181 @@ + + + + + + +cn.felord.payment.wechat.v3 类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包cn.felord.payment.wechat.v3的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +

枚举分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/cn/felord/payment/wechat/v3/package-use.html b/docs/apidocs/cn/felord/payment/wechat/v3/package-use.html new file mode 100644 index 0000000..391032b --- /dev/null +++ b/docs/apidocs/cn/felord/payment/wechat/v3/package-use.html @@ -0,0 +1,269 @@ + + + + + + +程序包 cn.felord.payment.wechat.v3的使用 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

程序包的使用
cn.felord.payment.wechat.v3

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/constant-values.html b/docs/apidocs/constant-values.html new file mode 100644 index 0000000..bb0bacb --- /dev/null +++ b/docs/apidocs/constant-values.html @@ -0,0 +1,202 @@ + + + + + + +常量字段值 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

常量字段值

+

目录

+ +
+
+ + +

cn.felord.*

+ + +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/deprecated-list.html b/docs/apidocs/deprecated-list.html new file mode 100644 index 0000000..4e05f21 --- /dev/null +++ b/docs/apidocs/deprecated-list.html @@ -0,0 +1,126 @@ + + + + + + +已过时的列表 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

已过时的 API

+

目录

+
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/help-doc.html b/docs/apidocs/help-doc.html new file mode 100644 index 0000000..8268256 --- /dev/null +++ b/docs/apidocs/help-doc.html @@ -0,0 +1,231 @@ + + + + + + +API 帮助 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

此 API 文档的组织方式

+
此 API (应用程序编程接口) 文档包含对应于导航栏中的项目的页面, 如下所述。
+
+
+ +此帮助文件适用于使用标准 doclet 生成的 API 文档。
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/index-all.html b/docs/apidocs/index-all.html new file mode 100644 index 0000000..67e575a --- /dev/null +++ b/docs/apidocs/index-all.html @@ -0,0 +1,2580 @@ + + + + + + +索引 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
A B C D E F G H I J K L M N O P Q R S T U V W  + + +

A

+
+
AbstractApi - cn.felord.payment.wechat.v3中的类
+
+
The type Abstract api.
+
+
AbstractApi(WechatPayClient, String) - 类 的构造器cn.felord.payment.wechat.v3.AbstractApi
+
+
Instantiates a new Abstract api.
+
+
address - 类 中的变量cn.felord.payment.wechat.v3.model.StoreInfo
+
+
详细地址
+
+
addWechatMeta(String, WechatMetaBean) - 类 中的方法cn.felord.payment.wechat.v3.WechatMetaContainer
+
+
Add wechat meta boolean.
+
+
algorithm - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams.Resource
+
+
The Algorithm.
+
+
alipayClient(AliPayProperties) - 类 中的方法cn.felord.payment.alipay.AliPayConfiguration
+
 
+
AliPayConfiguration - cn.felord.payment.alipay中的类
+
 
+
AliPayConfiguration() - 类 的构造器cn.felord.payment.alipay.AliPayConfiguration
+
 
+
AliPayProperties - cn.felord.payment.alipay中的类
+
+
The type Ali pay properties.
+
+
AliPayProperties() - 类 的构造器cn.felord.payment.alipay.AliPayProperties
+
 
+
AliPayProperties.V1 - cn.felord.payment.alipay中的类
+
+
The type V 1.
+
+
alipayPublicCertPath - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
alipay public cert path
+
+
alipayRootCertPath - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
alipay root cert path
+
+
Amount - cn.felord.payment.wechat.v3.model中的类
+
+
支付金额 货币单位【分】默认使用人民币标识CNY
+
+
Amount() - 类 的构造器cn.felord.payment.wechat.v3.model.Amount
+
 
+
amount - 类 中的变量cn.felord.payment.wechat.v3.model.combine.SubOrder
+
+
合单支付订单金额信息,必填。
+
+
amount - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Amount.
+
+
amount - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
支付金额
+
+
amount - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Amount.
+
+
amount - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Amount.
+
+
Amount() - 类 的构造器cn.felord.payment.wechat.v3.model.TransactionConsumeData.Amount
+
 
+
appCertPublicKeyPath - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
appCertPublicKey
+
+
appId - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
your app ID
+
+
appid - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
 
+
appid - 类 中的变量cn.felord.payment.wechat.v3.model.StocksSendParams
+
+
公众账号ID
+
+
appid - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Appid.
+
+
appId - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
公众服务号ID
+
+
appId - 类 中的变量cn.felord.payment.wechat.WechatPayProperties.V3
+
+
app id for wechat pay is required
+
+
applyDefaultCharset() - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Apply the configured charset as a default to registered part converters.
+
+
applyDefaultRestTemplate() - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient
+
+
Apply default rest template.
+
+
applyObjectMapper(ObjectMapper) - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Apply object mapper.
+
+
appName - 类 中的变量cn.felord.payment.wechat.v3.model.H5Info
+
+
应用名称
+
+
appPay(CombinePayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
合单下单-APP支付API + + 使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。
+
+
appPay(PayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
APP下单API
+
+
appPrivateKeyPath - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
your app private key, which must be in a single line
+
+
appRSAPrivateKey(String) - 类 中的方法cn.felord.payment.alipay.AliPayConfiguration
+
 
+
appSecret - 类 中的变量cn.felord.payment.wechat.WechatPayProperties.V3
+
+
app secret for wechat pay is required
+
+
appUrl - 类 中的变量cn.felord.payment.wechat.v3.model.H5Info
+
+
网站URL
+
+
appV3Secret - 类 中的变量cn.felord.payment.wechat.WechatPayProperties.V3
+
+
app V3 secret is required by wechat pay V3
+
+
areaCode - 类 中的变量cn.felord.payment.wechat.v3.model.StoreInfo
+
+
地区编码
+
+
associatedData - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams.Resource
+
+
The Associated data.
+
+
attach - 类 中的变量cn.felord.payment.wechat.v3.model.combine.SubOrder
+
+
附加数据,必填,在查询API和支付通知中原样返回,可作为自定义参数使用。
+
+
attach - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Attach.
+
+
attach - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用
+
+
attach - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Attach.
+
+
availableBeginTime - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
availableBeginTime - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
批次开始时间 rfc 3339 yyyy-mm-ddthh:mm:ss.sss+timezone
+
+
availableEndTime - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
availableEndTime - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
批次结束时间 rfc 3339 YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE
+
+
availableItems - 类 中的变量cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
availableMchId - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
可用商户号
+
+
availableMerchants - 类 中的变量cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
availableTimeAfterReceive - 类 中的变量cn.felord.payment.wechat.v3.model.CouponAvailableTime
+
+
The Available time after receive.
+
+
availableWeekDay - 类 中的变量cn.felord.payment.wechat.v3.model.FixAvailableTime
+
+
The Available week day.
+
+
+ + + +

B

+
+
backgroundColor - 类 中的变量cn.felord.payment.wechat.v3.model.PatternInfo
+
+
背景色
+
+
BankCode - cn.felord.payment.wechat.enumeration中的枚举
+
+
The enum Bank code.
+
+
BankCode(String, String) - 枚举 的构造器cn.felord.payment.wechat.enumeration.BankCode
+
 
+
bankName - 枚举 中的变量cn.felord.payment.wechat.enumeration.BankCode
+
 
+
bankName() - 枚举 中的方法cn.felord.payment.wechat.enumeration.BankCode
+
 
+
bankType - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Bank type.
+
+
bankType - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Bank type.
+
+
beginTime - 类 中的变量cn.felord.payment.wechat.v3.model.FixAvailableTime
+
+
The Begin time.
+
+
belongMerchant - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
批次归属商户号
+
+
billDownload(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
csv对账单下载。
+
+
billDownloadFunction(WechatPayV3Type, String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Bill download function request entity.
+
+
body - 类 中的变量cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams
+
+
response.body 微信服务器的响应体
+
+
body - 类 中的变量cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
The Body.
+
+
BOUNDARY - 类 中的静态变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The constant BOUNDARY.
+
+
bundleId - 类 中的变量cn.felord.payment.wechat.v3.model.H5Info
+
+
IOS 平台 BundleID
+
+
+ + + +

C

+
+
callback(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatApiProvider
+
+
回调.
+
+
callback(ResponseSignVerifyParams, WechatPayCallback.EventType) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayCallback
+
+
Callback string.
+
+
CallbackParams - cn.felord.payment.wechat.v3.model中的类
+
+
微信支付回调请求参数.
+
+
CallbackParams() - 类 的构造器cn.felord.payment.wechat.v3.model.CallbackParams
+
 
+
CallbackParams.Resource - cn.felord.payment.wechat.v3.model中的类
+
+
The type Resource.
+
+
CERT_ALIAS - 类 中的静态变量cn.felord.payment.wechat.WechatPayConfiguration
+
+
The constant CERT_ALIAS.
+
+
CERTIFICATE_MAP - 类 中的静态变量cn.felord.payment.wechat.v3.SignatureProvider
+
+
微信平台证书容器 key = 序列号 value = 证书对象
+
+
certPath - 类 中的变量cn.felord.payment.wechat.WechatPayProperties.V3
+
+
wechat pay certificate Path
+
+
charset - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
charset default utf-8
+
+
charset - 类 中的变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
+
The Charset.
+
+
ciphertext - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams.Resource
+
+
The Ciphertext.
+
+
client() - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Client wechat pay client.
+
+
close(CombineCloseParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
合单关闭订单API.
+
+
close(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
关单API
+
+
closeByOutTradeNoFunction(WechatPayV3Type, String) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
 
+
ClosingSubOrder() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombineCloseParams.ClosingSubOrder
+
 
+
cn.felord.payment - 程序包 cn.felord.payment
+
 
+
cn.felord.payment.alipay - 程序包 cn.felord.payment.alipay
+
 
+
cn.felord.payment.autoconfigure - 程序包 cn.felord.payment.autoconfigure
+
 
+
cn.felord.payment.wechat - 程序包 cn.felord.payment.wechat
+
 
+
cn.felord.payment.wechat.enumeration - 程序包 cn.felord.payment.wechat.enumeration
+
 
+
cn.felord.payment.wechat.v3 - 程序包 cn.felord.payment.wechat.v3
+
 
+
cn.felord.payment.wechat.v3.model - 程序包 cn.felord.payment.wechat.v3.model
+
 
+
cn.felord.payment.wechat.v3.model.combine - 程序包 cn.felord.payment.wechat.v3.model.combine
+
 
+
code - 枚举 中的变量cn.felord.payment.wechat.enumeration.BankCode
+
 
+
code() - 枚举 中的方法cn.felord.payment.wechat.enumeration.BankCode
+
 
+
color - 枚举 中的变量cn.felord.payment.wechat.enumeration.CouponBgColor
+
 
+
color() - 枚举 中的方法cn.felord.payment.wechat.enumeration.CouponBgColor
+
 
+
CombineAmount - cn.felord.payment.wechat.v3.model.combine中的类
+
+
合单支付订单金额信息.
+
+
CombineAmount() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombineAmount
+
 
+
CombineAmount() - 类 的构造器cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount
+
 
+
combineAppid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineCloseParams
+
+
合单商户appid,必填
+
+
combineAppid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
合单商户appid,必填
+
+
combineAppid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
合单商户appid,必填
+
+
combineAppid - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData
+
+
合单商户appid.
+
+
CombineCloseParams - cn.felord.payment.wechat.v3.model.combine中的类
+
+
合单支付 关单参数.
+
+
CombineCloseParams() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombineCloseParams
+
 
+
CombineCloseParams.ClosingSubOrder - cn.felord.payment.wechat.v3.model.combine中的类
+
+
关单-子单信息,最多50单.
+
+
CombineH5PayParams - cn.felord.payment.wechat.v3.model.combine中的类
+
+
合单支付 H5支付参数.
+
+
CombineH5PayParams() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
 
+
CombineH5SceneInfo - cn.felord.payment.wechat.v3.model.combine中的类
+
 
+
CombineH5SceneInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombineH5SceneInfo
+
 
+
combineMchid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
合单商户号,必填
+
+
combineMchid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
合单商户号,必填
+
+
combineMchid - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData
+
+
合单商户号.
+
+
combineOutTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineCloseParams
+
+
合单商户订单号,必填,商户侧需要保证同一商户下唯一
+
+
combineOutTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
合单商户订单号,必填,商户侧需要保证同一商户下唯一
+
+
combineOutTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
合单商户订单号,必填,商户侧需要保证同一商户下唯一
+
+
combineOutTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData
+
+
合单商户订单号.
+
+
combinePayApi(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatApiProvider
+
+
合单支付.
+
+
combinePayerInfo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
合单支付者信息,选填
+
+
CombinePayerInfo - cn.felord.payment.wechat.v3.model.combine中的类
+
+
合单支付,支付者信息.
+
+
CombinePayerInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombinePayerInfo
+
 
+
combinePayerInfo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
合单支付者信息,选填
+
+
combinePayerInfo - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData
+
+
支付者.
+
+
combinePayFunction(WechatPayV3Type, CombinePayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
Combine pay function request entity.
+
+
combinePayFunction(WechatPayV3Type, CombineH5PayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
Combine pay function request entity.
+
+
CombinePayParams - cn.felord.payment.wechat.v3.model.combine中的类
+
+
合单支付 APP支付、JSAPI支付、小程序支付、Native支付参数.
+
+
CombinePayParams() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
 
+
CombineSceneInfo - cn.felord.payment.wechat.v3.model.combine中的类
+
+
合单支付场景信息.
+
+
CombineSceneInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.CombineSceneInfo
+
 
+
combineTransactionCallback(ResponseSignVerifyParams, Consumer<CombineTransactionConsumeData>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayCallback
+
+
微信合单支付成功回调.
+
+
CombineTransactionConsumeData - cn.felord.payment.wechat.v3.model中的类
+
+
合单支付回调解密数据.
+
+
CombineTransactionConsumeData() - 类 的构造器cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData
+
 
+
CombineTransactionConsumeData.CombineAmount - cn.felord.payment.wechat.v3.model中的类
+
+
订单金额信息.
+
+
CombineTransactionConsumeData.SubOrderCallback - cn.felord.payment.wechat.v3.model中的类
+
+
合单支付回调子订单.
+
+
combineUse - 类 中的变量cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
comment - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
仅配置商户可见,用于自定义信息
+
+
ConsumeInformation - cn.felord.payment.wechat.v3.model中的类
+
+
已实扣代金券信息
+
+
ConsumeInformation() - 类 的构造器cn.felord.payment.wechat.v3.model.ConsumeInformation
+
 
+
consumeInformation - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
consumeMchid - 类 中的变量cn.felord.payment.wechat.v3.model.ConsumeInformation
+
 
+
consumer(Consumer<ResponseEntity<ObjectNode>>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
Consumer executor.
+
+
consumeTime - 类 中的变量cn.felord.payment.wechat.v3.model.ConsumeInformation
+
 
+
container() - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Container wechat meta container.
+
+
convert(ResponseEntity<T>) - 类 中的方法cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
Convert ResponseEntity to WechatResponseEntity.
+
+
costPrice - 类 中的变量cn.felord.payment.wechat.v3.model.Detail
+
+
订单原价
+
+
couponAmount - 类 中的变量cn.felord.payment.wechat.v3.model.FixedNormalCoupon
+
+
面额,单位分
+
+
couponAmount - 类 中的变量cn.felord.payment.wechat.v3.model.NormalCouponInformation
+
 
+
CouponAvailableTime - cn.felord.payment.wechat.v3.model中的类
+
 
+
CouponAvailableTime() - 类 的构造器cn.felord.payment.wechat.v3.model.CouponAvailableTime
+
 
+
couponAvailableTime - 类 中的变量cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
CouponBgColor - cn.felord.payment.wechat.enumeration中的枚举
+
+
优惠券背景色 + + https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/marketing/convention/chapter3_1.shtml#menu1
+
+
CouponBgColor(String) - 枚举 的构造器cn.felord.payment.wechat.enumeration.CouponBgColor
+
 
+
couponCallback(ResponseSignVerifyParams, Consumer<CouponConsumeData>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayCallback
+
+
微信支付代金券核销回调.
+
+
CouponConsumeData - cn.felord.payment.wechat.v3.model中的类
+
+
微信代金券核销通知参数
+
+
CouponConsumeData() - 类 的构造器cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
couponDetailFunction(WechatPayV3Type, CouponDetailsQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Coupon detail function request entity.
+
+
CouponDetailsQueryParams - cn.felord.payment.wechat.v3.model中的类
+
+
查询代金券详情API参数
+
+
CouponDetailsQueryParams() - 类 的构造器cn.felord.payment.wechat.v3.model.CouponDetailsQueryParams
+
 
+
couponId - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
couponId - 类 中的变量cn.felord.payment.wechat.v3.model.CouponDetailsQueryParams
+
+
代金券id
+
+
couponId - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Coupon id.
+
+
couponImage - 类 中的变量cn.felord.payment.wechat.v3.model.PatternInfo
+
+
券详情图片
+
+
couponMinimum - 类 中的变量cn.felord.payment.wechat.v3.model.StocksSendParams
+
+
指定面额发券批次门槛,其他场景不需要,单位:分。
+
+
couponName - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
CouponStatus - cn.felord.payment.wechat.enumeration中的枚举
+
+
The enum Coupon status.
+
+
CouponStatus() - 枚举 的构造器cn.felord.payment.wechat.enumeration.CouponStatus
+
 
+
couponType - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
CouponUseRule - cn.felord.payment.wechat.v3.model中的类
+
+
核销规则.
+
+
CouponUseRule() - 类 的构造器cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
couponUseRule - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
核销规则
+
+
couponValue - 类 中的变量cn.felord.payment.wechat.v3.model.StocksSendParams
+
+
指定面额发券场景,券面额,其他场景不需要填,单位:分。
+
+
createEndTime - 类 中的变量cn.felord.payment.wechat.v3.model.StocksQueryParams
+
+
选填 + + 终止时间 最终满足格式 yyyy-MM-dd'T'HH:mm:ss.SSSXXX
+
+
createPKCS12(String, String, String) - 类 中的方法cn.felord.payment.wechat.v3.KeyPairFactory
+
+
获取公私钥.
+
+
createSign(String...) - 类 中的方法cn.felord.payment.wechat.v3.SignatureProvider
+
+
请求时设置签名 组件
+
+
createStartTime - 类 中的变量cn.felord.payment.wechat.v3.model.StocksQueryParams
+
+
选填 + + 起始时间 最终满足格式 yyyy-MM-dd'T'HH:mm:ss.SSSXXX
+
+
createStock(StocksCreateParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
创建代金券批次API + + 通过调用此接口可创建代金券批次,包括 预充值免充值 类型。
+
+
createStocksFunction(WechatPayV3Type, StocksCreateParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Create stocks function request entity.
+
+
createTime - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams
+
+
The Create time.
+
+
createTime - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
creatorMchId - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
创建批次的商户号
+
+
currency - 类 中的变量cn.felord.payment.wechat.v3.model.Amount
+
+
The Currency.
+
+
currency - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineAmount
+
+
符合ISO 4217标准的三位字母代码,必填,人民币:CNY 。
+
+
currency - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount
+
+
标价币种.
+
+
currency - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Currency.
+
+
currency - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData.Amount
+
+
The Currency.
+
+
cutToPrice - 类 中的变量cn.felord.payment.wechat.v3.model.DiscountTo
+
 
+
+ + + +

D

+
+
decryptResponseBody(String, String, String, String) - 类 中的方法cn.felord.payment.wechat.v3.SignatureProvider
+
+
解密响应体.
+
+
description - 枚举 中的变量cn.felord.payment.wechat.enumeration.StockStatus
+
 
+
description() - 枚举 中的方法cn.felord.payment.wechat.enumeration.StockStatus
+
+
Description string.
+
+
description - 类 中的变量cn.felord.payment.wechat.v3.model.combine.SubOrder
+
+
商品描述,必填,需传入应用市场上的APP名字-实际商品名称,例如:天天爱消除-游戏充值。
+
+
description - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
description - 类 中的变量cn.felord.payment.wechat.v3.model.PatternInfo
+
+
使用说明
+
+
description - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
商品描述 + Image形象店-深圳腾大-QQ公仔
+
+
Detail - cn.felord.payment.wechat.v3.model中的类
+
 
+
Detail() - 类 的构造器cn.felord.payment.wechat.v3.model.Detail
+
 
+
detail - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
优惠功能
+
+
deviceId - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineSceneInfo
+
+
商户设备号,选填。
+
+
deviceId - 类 中的变量cn.felord.payment.wechat.v3.model.SceneInfo
+
+
商户端设备号
+
+
deviceId - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData.SceneInfo
+
+
The Device id.
+
+
directPayApi(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatApiProvider
+
+
普通支付-直连模式.
+
+
discountAmount - 类 中的变量cn.felord.payment.wechat.v3.model.GoodsDetail
+
 
+
discountAmount - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail
+
+
The Discount amount.
+
+
discountTo - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
DiscountTo - cn.felord.payment.wechat.v3.model中的类
+
+
减至优惠限定字段,仅减至优惠场景有返回
+
+
DiscountTo() - 类 的构造器cn.felord.payment.wechat.v3.model.DiscountTo
+
 
+
doDownload(WechatRequestEntity<T>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
Do download string.
+
+
doExecute(WechatRequestEntity<T>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
Do execute.
+
+
domain - 枚举 中的变量cn.felord.payment.wechat.enumeration.WeChatServer
+
+
域名
+
+
domain() - 枚举 中的方法cn.felord.payment.wechat.enumeration.WeChatServer
+
+
Gets type.
+
+
domain - 类 中的变量cn.felord.payment.wechat.WechatPayProperties.V3
+
+
your pay server domain
+
+
download() - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
Download string.
+
+
downloadFlowFunction(WechatPayV3Type, String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Download flow function request entity.
+
+
downloadStockRefundFlow(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
下载批次退款明细API + + 数据结果包含在响应体的 csv 字段中 + + 可获取到某批次的退款明细数据,包括订单号、单品信息、银行流水号等,用于对账/数据分析。
+
+
downloadStockUseFlow(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
下载批次核销明细API + + 数据结果包含在响应体的 csv 字段中 + + 可获取到某批次的核销明细数据,包括订单号、单品信息、银行流水号等,用于对账/数据分析。
+
+
+ + + +

E

+
+
EnableMobilePay - cn.felord.payment.autoconfigure中的注释类型
+
 
+
endTime - 类 中的变量cn.felord.payment.wechat.v3.model.FixAvailableTime
+
+
The End time.
+
+
event - 枚举 中的变量cn.felord.payment.wechat.v3.WechatPayCallback.EventType
+
+
The Event.
+
+
eventType - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams
+
+
The Event type.
+
+
EventType(String) - 枚举 的构造器cn.felord.payment.wechat.v3.WechatPayCallback.EventType
+
+
Instantiates a new Event type.
+
+
Executor(WechatPayV3Type, M, SignatureProvider, RestOperations) - 类 的构造器cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
Instantiates a new Executor.
+
+
ext_info - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
扩展属性
+
+
ExtensionFormHttpMessageConverter - cn.felord.payment.wechat.v3中的类
+
+
用于微信支付处理上传的自定义消息转换器.
+
+
ExtensionFormHttpMessageConverter() - 类 的构造器cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Instantiates a new Upload http message converter.
+
+
ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage - cn.felord.payment.wechat.v3中的类
+
+
The type Multipart http output message.
+
+
+ + + +

F

+
+
favorApi(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatApiProvider
+
+
代金券.
+
+
fixAvailableTime - 类 中的变量cn.felord.payment.wechat.v3.model.CouponAvailableTime
+
+
The Fix available time.
+
+
FixAvailableTime - cn.felord.payment.wechat.v3.model中的类
+
+
The type Fix available time.
+
+
FixAvailableTime() - 类 的构造器cn.felord.payment.wechat.v3.model.FixAvailableTime
+
 
+
fixedNormalCoupon - 类 中的变量cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
FixedNormalCoupon - cn.felord.payment.wechat.v3.model中的类
+
+
固定面额满减券使用规则, stock_type为NORMAL时必填 + + 满transactionMinimum 减少 couponAmount
+
+
FixedNormalCoupon() - 类 的构造器cn.felord.payment.wechat.v3.model.FixedNormalCoupon
+
 
+
format - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
data format only json now
+
+
function(BiFunction<WechatPayV3Type, M, RequestEntity<?>>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
Function executor.
+
+
+ + + +

G

+
+
Get(URI) - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Get request entity.
+
+
getBody() - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
 
+
getBytes(String) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
+
Get bytes byte [ ].
+
+
getFileAbsolutePath(String) - 类 中的方法cn.felord.payment.alipay.AliPayConfiguration
+
 
+
getHeaders() - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
 
+
getMapper() - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Gets mapper.
+
+
getMediaType(MediaType) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Gets media type.
+
+
getTenantIds() - 类 中的方法cn.felord.payment.wechat.v3.WechatMetaContainer
+
+
Gets properties keys.
+
+
getWechatMeta(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMetaContainer
+
+
Gets wechat meta.
+
+
Goods - cn.felord.payment.wechat.v3.model中的类
+
 
+
Goods() - 类 的构造器cn.felord.payment.wechat.v3.model.Goods
+
 
+
goodsDetail - 类 中的变量cn.felord.payment.wechat.v3.model.ConsumeInformation
+
 
+
goodsDetail - 类 中的变量cn.felord.payment.wechat.v3.model.Detail
+
+
单品列表
+
+
GoodsDetail - cn.felord.payment.wechat.v3.model中的类
+
+
商户下单接口传的单品信息
+
+
GoodsDetail() - 类 的构造器cn.felord.payment.wechat.v3.model.GoodsDetail
+
 
+
goodsDetail - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Goods detail.
+
+
GoodsDetail() - 类 的构造器cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail
+
 
+
goodsId - 类 中的变量cn.felord.payment.wechat.v3.model.GoodsDetail
+
 
+
goodsId - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail
+
+
The Goods id.
+
+
goodsName - 类 中的变量cn.felord.payment.wechat.v3.model.Goods
+
+
商品名称
+
+
goodsRemark - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail
+
+
The Goods remark.
+
+
goodsTag - 类 中的变量cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
goodsTag - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
订单优惠标记
+
+
gsonPresent - 类 中的静态变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The constant gsonPresent.
+
+
+ + + +

H

+
+
h5Info - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5SceneInfo
+
 
+
H5Info - cn.felord.payment.wechat.v3.model中的类
+
 
+
H5Info() - 类 的构造器cn.felord.payment.wechat.v3.model.H5Info
+
 
+
h5Info - 类 中的变量cn.felord.payment.wechat.v3.model.SceneInfo
+
+
H5 场景信息
+
+
h5Pay(CombineH5PayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
合单下单-H5支付API.
+
+
h5Pay(PayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
H5下单API
+
+
hasError(ClientHttpResponse) - 类 中的方法cn.felord.payment.wechat.WechatPayResponseErrorHandler
+
 
+
header(WechatRequestEntity<T>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
构造私钥签名.
+
+
headers - 类 中的变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
+
The Headers.
+
+
headers(HttpHeaders) - 类 中的方法cn.felord.payment.wechat.v3.WechatRequestEntity
+
+
Headers wechat request entity.
+
+
headersWritten - 类 中的变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
+
The Headers written.
+
+
httpStatus - 类 中的变量cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
The Http status.
+
+
+ + + +

I

+
+
id - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams
+
+
The Id.
+
+
id - 类 中的变量cn.felord.payment.wechat.v3.model.StoreInfo
+
+
门店编号
+
+
ID_GENERATOR - 类 中的静态变量cn.felord.payment.wechat.v3.SignatureProvider
+
+
The constant ID_GENERATOR.
+
+
invoiceId - 类 中的变量cn.felord.payment.wechat.v3.model.Detail
+
+
商品小票ID
+
+
is1xxInformational() - 类 中的方法cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
Is 1 xx informational boolean.
+
+
is2xxSuccessful() - 类 中的方法cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
Is 2xx successful boolean.
+
+
is3xxRedirection() - 类 中的方法cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
Is 3xx redirection boolean.
+
+
is4xxClientError() - 类 中的方法cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
Is 4xx client error boolean.
+
+
is5xxServerError() - 类 中的方法cn.felord.payment.wechat.v3.WechatResponseEntity
+
+
Is 5xx server error boolean.
+
+
isMultipart(MultiValueMap<String, ?>, MediaType) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Is multipart boolean.
+
+
+ + + +

J

+
+
jackson2Present - 类 中的静态变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The constant jackson2Present.
+
+
jackson2SmilePresent - 类 中的静态变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The constant jackson2SmilePresent.
+
+
jackson2XmlPresent - 类 中的静态变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The constant jackson2XmlPresent.
+
+
jaxb2Present - 类 中的静态变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The constant jaxb2Present.
+
+
jsonbPresent - 类 中的静态变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The constant jsonbPresent.
+
+
jsPay(CombinePayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
合单下单-JSAPI支付/小程序支付API + + 使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。
+
+
jsPay(PayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
JSAPI/小程序下单API
+
+
+ + + +

K

+
+
keyPair - 类 中的变量cn.felord.payment.wechat.v3.WechatMetaBean
+
+
The Key pair.
+
+
KeyPairFactory - cn.felord.payment.wechat.v3中的类
+
+
证书工具
+
+
KeyPairFactory() - 类 的构造器cn.felord.payment.wechat.v3.KeyPairFactory
+
 
+
+ + + +

L

+
+
limit - 类 中的变量cn.felord.payment.wechat.v3.model.MchQueryParams
+
+
必填 + + 查询代金券可用商户API 最大50。
+
+
limit - 类 中的变量cn.felord.payment.wechat.v3.model.StocksQueryParams
+
+
必填 + + 条件查询批次列表API 分页大小,最大10。
+
+
limit - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
分页大小
+
+
lock - 类 中的变量cn.felord.payment.wechat.v3.KeyPairFactory
+
 
+
+ + + +

M

+
+
mapper - 类 中的变量cn.felord.payment.wechat.v3.AbstractApi
+
+
The Mapper.
+
+
MAPPER - 类 中的静态变量cn.felord.payment.wechat.v3.WechatPayCallback
+
+
The constant MAPPER.
+
+
marketingImageUpload(MultipartFile) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
营销图片上传API + + 媒体图片只支持JPG、BMP、PNG格式,文件大小不能超过2M。
+
+
marketingImageUploadFunction(WechatPayV3Type, MultipartFile) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Marketing image upload function request entity.
+
+
maxAmount - 类 中的变量cn.felord.payment.wechat.v3.model.StockUseRule
+
+
总消耗金额,单位:分。
+
+
maxAmountByDay - 类 中的变量cn.felord.payment.wechat.v3.model.StockUseRule
+
+
单天最高消耗金额,单位:分
+
+
maxCoupons - 类 中的变量cn.felord.payment.wechat.v3.model.StockUseRule
+
+
最大发券数
+
+
maxCouponsPerUser - 类 中的变量cn.felord.payment.wechat.v3.model.StockUseRule
+
+
单个用户可领个数,每个用户最多60张券
+
+
maxPrice - 类 中的变量cn.felord.payment.wechat.v3.model.DiscountTo
+
 
+
mchid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineCloseParams.ClosingSubOrder
+
+
子单发起方商户号,必填,必须与发起方appid有绑定关系。
+
+
mchid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.SubOrder
+
+
子单发起方商户号,必填,必须与发起方appid有绑定关系。
+
+
mchid - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Mchid.
+
+
mchid - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
 
+
mchid - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Mchid.
+
+
mchId - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionQueryParams
+
 
+
mchId - 类 中的变量cn.felord.payment.wechat.WechatPayProperties.V3
+
+
mchId for wechat pay is required
+
+
MchQueryParams - cn.felord.payment.wechat.v3.model中的类
+
+
查询代金券可用商户.
+
+
MchQueryParams() - 类 的构造器cn.felord.payment.wechat.v3.model.MchQueryParams
+
 
+
merchantContribute - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Merchant contribute.
+
+
merchantGoodsId - 类 中的变量cn.felord.payment.wechat.v3.model.Goods
+
+
商户侧商品编码
+
+
merchantLogo - 类 中的变量cn.felord.payment.wechat.v3.model.PatternInfo
+
+
商户logo
+
+
merchantName - 类 中的变量cn.felord.payment.wechat.v3.model.PatternInfo
+
+
商户名称
+
+
method - 枚举 中的变量cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
The Method.
+
+
method() - 枚举 中的方法cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
Method string.
+
+
model - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
The Model.
+
+
MultipartHttpOutputMessage(OutputStream, Charset) - 类 的构造器cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
+
Instantiates a new Multipart http output message.
+
+
+ + + +

N

+
+
name - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Name.
+
+
name - 类 中的变量cn.felord.payment.wechat.v3.model.StoreInfo
+
+
门店名称
+
+
nativePay(CombinePayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
合单下单-Native支付API.
+
+
nativePay(PayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
Native下单API
+
+
naturalPersonLimit - 类 中的变量cn.felord.payment.wechat.v3.model.StockUseRule
+
+
是否开启自然人限制
+
+
noCash - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
noCash - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
可创建代金券的类型包含预充值和免充值两种类型。
+
+
nonce - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams.Resource
+
+
The Nonce.
+
+
normalCouponInformation - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
NormalCouponInformation - cn.felord.payment.wechat.v3.model中的类
+
+
普通满减券面额、门槛信息
+
+
NormalCouponInformation() - 类 的构造器cn.felord.payment.wechat.v3.model.NormalCouponInformation
+
 
+
notifyUrl - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
通知地址,必填,接收微信支付异步通知回调地址,通知url必须为直接可访问的URL,不能携带参数。
+
+
notifyUrl - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
通知地址,必填,接收微信支付异步通知回调地址,通知url必须为直接可访问的URL,不能携带参数。
+
+
notifyUrl - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
通知URL必须为直接可访问的URL,不允许携带查询串。
+
+
+ + + +

O

+
+
of(RequestEntity<?>, Consumer<ResponseEntity<ObjectNode>>) - 类 中的静态方法cn.felord.payment.wechat.v3.WechatRequestEntity
+
+
Of wechat request entity.
+
+
offset - 类 中的变量cn.felord.payment.wechat.v3.model.MchQueryParams
+
+
必填 + + 查询代金券可用商户API 分页页码,最大1000。
+
+
offset - 类 中的变量cn.felord.payment.wechat.v3.model.StocksQueryParams
+
+
必填 + + 条件查询批次列表API 页码从0开始,默认第0页,传递1可能出错。
+
+
offset - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
分页页码
+
+
openid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayerInfo
+
+
使用合单appid获取的对应用户openid。
+
+
openId - 类 中的变量cn.felord.payment.wechat.v3.model.CouponDetailsQueryParams
+
+
用户在appid下授权得到的openid + + 参考发券
+
+
openid - 类 中的变量cn.felord.payment.wechat.v3.model.Payer
+
+
用户标识
+
+
openid - 类 中的变量cn.felord.payment.wechat.v3.model.StocksSendParams
+
+
用户openid 该openid需要与接口传入中的appid有对应关系。
+
+
openid - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData.Payer
+
+
The Openid.
+
+
openId - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
用户公众号服务号标识
+
+
originalType - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams.Resource
+
+
The Original type.
+
+
otherContribute - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Other contribute.
+
+
outputStream - 类 中的变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
+
The Output stream.
+
+
outRequestNo - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
商户单据号
+
+
outRequestNo - 类 中的变量cn.felord.payment.wechat.v3.model.StocksSendParams
+
+
商户单据号
+
+
outTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineCloseParams.ClosingSubOrder
+
+
子单商户订单号,必填,商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。
+
+
outTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.SubOrder
+
+
子单商户订单号,必填,商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。
+
+
outTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Out trade no.
+
+
outTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一,详见【商户订单号】。
+
+
outTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Out trade no.
+
+
+ + + +

P

+
+
packageName - 类 中的变量cn.felord.payment.wechat.v3.model.H5Info
+
+
Android 平台 PackageName
+
+
partConverters - 类 中的变量cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
The Part converters.
+
+
partnerKey - 类 中的变量cn.felord.payment.wechat.WechatPayProperties.V3
+
+
partnerKey for wechat pay is optional
+
+
pattern - 枚举 中的变量cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
The Pattern.
+
+
pattern() - 枚举 中的方法cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
Pattern string.
+
+
PatternInfo - cn.felord.payment.wechat.v3.model中的类
+
+
优惠券样式
+
+
PatternInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.PatternInfo
+
 
+
patternInfo - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
代金券样式
+
+
pauseStock(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
暂停代金券批次API + + 通过此接口可暂停指定代金券批次。
+
+
PayConfiguration - cn.felord.payment.autoconfigure中的类
+
 
+
PayConfiguration() - 类 的构造器cn.felord.payment.autoconfigure.PayConfiguration
+
 
+
Payer - cn.felord.payment.wechat.v3.model中的类
+
 
+
Payer() - 类 的构造器cn.felord.payment.wechat.v3.model.Payer
+
 
+
payer - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
支付者 JSAPI/小程序下单 必传
+
+
payer - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Payer.
+
+
Payer() - 类 的构造器cn.felord.payment.wechat.v3.model.TransactionConsumeData.Payer
+
 
+
payerAmount - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount
+
+
现金支付金额.
+
+
payerClientIp - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineSceneInfo
+
+
用户终端ip,必填。
+
+
payerClientIp - 类 中的变量cn.felord.payment.wechat.v3.model.SceneInfo
+
+
用户终端IP
+
+
payerCurrency - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount
+
+
现金支付币种.
+
+
payerCurrency - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData.Amount
+
+
The Payer currency.
+
+
payerTotal - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData.Amount
+
+
The Payer total.
+
+
PayException - cn.felord.payment中的异常错误
+
 
+
PayException() - 异常错误 的构造器cn.felord.payment.PayException
+
 
+
PayException(String) - 异常错误 的构造器cn.felord.payment.PayException
+
 
+
PayException(String, Throwable) - 异常错误 的构造器cn.felord.payment.PayException
+
 
+
PayException(Throwable) - 异常错误 的构造器cn.felord.payment.PayException
+
 
+
PayException(String, Throwable, boolean, boolean) - 异常错误 的构造器cn.felord.payment.PayException
+
 
+
payFunction(WechatPayV3Type, PayParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
 
+
PayParams - cn.felord.payment.wechat.v3.model中的类
+
+
支付请求参数.
+
+
PayParams() - 类 的构造器cn.felord.payment.wechat.v3.model.PayParams
+
 
+
Post(URI, Object) - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Post request entity.
+
+
preventApiAbuse - 类 中的变量cn.felord.payment.wechat.v3.model.StockUseRule
+
+
api发券防刷
+
+
price - 类 中的变量cn.felord.payment.wechat.v3.model.GoodsDetail
+
 
+
profitSharing - 类 中的变量cn.felord.payment.wechat.v3.model.SettleInfo
+
+
是否指定分账
+
+
PromotionDetail - cn.felord.payment.wechat.v3.model中的类
+
+
The type Promotion detail.
+
+
PromotionDetail() - 类 的构造器cn.felord.payment.wechat.v3.model.PromotionDetail
+
 
+
promotionDetail - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Promotion detail.
+
+
PromotionDetail.GoodsDetail - cn.felord.payment.wechat.v3.model中的类
+
+
The type Goods detail.
+
+
+ + + +

Q

+
+
quantity - 类 中的变量cn.felord.payment.wechat.v3.model.Goods
+
+
商品数量
+
+
quantity - 类 中的变量cn.felord.payment.wechat.v3.model.GoodsDetail
+
 
+
quantity - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail
+
+
The Quantity.
+
+
queryCouponDetails(CouponDetailsQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
查询代金券详情API + + 通过此接口可查询代金券信息,包括代金券的基础信息、状态。
+
+
queryMerchantsByStockId(MchQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
查询代金券可用商户API + + 通过调用此接口可查询批次的可用商户号,判断券是否在某商户号可用,来决定是否展示。
+
+
queryMerchantsByStockIdFunction(WechatPayV3Type, MchQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Query stocks function request entity.
+
+
queryStockDetail(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
查询批次详情API + + 通过此接口可查询批次信息,包括批次的配置信息以及批次概况数据。
+
+
queryStockItems(MchQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
查询代金券可用单品API + + 通过此接口可查询批次的可用商品编码,判断券是否可用于某些商品,来决定是否展示。
+
+
queryStocksByMch(StocksQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
条件查询批次列表API + + 通过此接口可查询多个批次的信息,包括批次的配置信息以及批次概况数据。
+
+
queryStocksByMchFunction(WechatPayV3Type, StocksQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Query stocks function request entity.
+
+
queryTransactionById(TransactionQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
微信支付订单号查询API
+
+
queryTransactionByOutTradeNo(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
合单查询订单API.
+
+
queryTransactionByOutTradeNo(TransactionQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
商户订单号查询API
+
+
queryTransactionFunction(WechatPayV3Type, TransactionQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatDirectPayApi
+
 
+
queryUserCouponsByMchId(UserCouponsQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
根据商户号查用户的券API + + 可通过该接口查询用户在某商户号可用的全部券,可用于商户的小程序/H5中,用户"我的代金券"或"提交订单页"展示优惠信息。
+
+
queryUserCouponsFunction(WechatPayV3Type, UserCouponsQueryParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Query user coupons function request entity.
+
+
+ + + +

R

+
+
refreshCertificate(String) - 类 中的方法cn.felord.payment.wechat.v3.SignatureProvider
+
+
当我方服务器不存在平台证书或者证书同当前响应报文中的证书序列号不一致时应当刷新 调用/v3/certificates
+
+
removeWechatMeta(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMetaContainer
+
+
Remove wechat meta wechat meta bean.
+
+
request() - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
Request.
+
+
requestEntityBiFunction - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
The Request entity bi function.
+
+
requestSign(String, String, String, String) - 类 中的方法cn.felord.payment.wechat.v3.SignatureProvider
+
+
我方请求时加签,使用API证书.
+
+
resource - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams
+
+
The Resource.
+
+
Resource() - 类 的构造器cn.felord.payment.wechat.v3.model.CallbackParams.Resource
+
 
+
resourceType - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams
+
+
The Resource type.
+
+
responseBodyConsumer - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
The Response body consumer.
+
+
responseBodyConsumer - 类 中的变量cn.felord.payment.wechat.v3.WechatRequestEntity
+
+
The Response body consumer.
+
+
responseSignVerify(ResponseSignVerifyParams) - 类 中的方法cn.felord.payment.wechat.v3.SignatureProvider
+
+
我方对响应验签,和应答签名做比较,使用微信平台证书.
+
+
ResponseSignVerifyParams - cn.felord.payment.wechat.v3.model中的类
+
+
微信的响应签名校验参数
+
+
ResponseSignVerifyParams() - 类 的构造器cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams
+
 
+
restartStock(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
重启代金券批次API + + 通过此接口可重启指定代金券批次。
+
+
restOperations - 类 中的变量cn.felord.payment.wechat.v3.SignatureProvider
+
+
The Rest operations.
+
+
restOperations - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
The Rest operations.
+
+
restOperations - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient
+
+
The Rest operations.
+
+
+ + + +

S

+
+
sceneInfo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
合单支付场景信息描述,选填
+
+
sceneInfo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
合单支付场景信息描述,选填
+
+
sceneInfo - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData
+
+
场景信息,合单支付回调只返回device_id
+
+
sceneInfo - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
场景信息
+
+
SceneInfo - cn.felord.payment.wechat.v3.model中的类
+
+
场景信息
+
+
SceneInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.SceneInfo
+
 
+
sceneInfo - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Scene info.
+
+
SceneInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.TransactionConsumeData.SceneInfo
+
 
+
SCHEMA - 类 中的静态变量cn.felord.payment.wechat.v3.SignatureProvider
+
+
The constant SCHEMA.
+
+
scope - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Scope.
+
+
secondDayAvailable - 类 中的变量cn.felord.payment.wechat.v3.model.CouponAvailableTime
+
+
The Second day available.
+
+
senderMchId - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
批次发放商户号
+
+
sendStock(StocksSendParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
发放代金券API + + 商户侧开发时建议增加发放流水记录。
+
+
sendStocksFunction(WechatPayV3Type, StocksSendParams) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Send stocks function request entity.
+
+
serialNumber - 类 中的变量cn.felord.payment.wechat.v3.WechatMetaBean
+
+
The Serial number.
+
+
serverUrl - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
alipay server
+
+
setMarketingFavorCallback(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
代金券核销回调通知API。
+
+
setMarketingFavorCallbackFunction(WechatPayV3Type, String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Sets marketing favor callback function.
+
+
settleInfo - 类 中的变量cn.felord.payment.wechat.v3.model.combine.SubOrder
+
+
结算信息,选填
+
+
SettleInfo - cn.felord.payment.wechat.v3.model中的类
+
 
+
SettleInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.SettleInfo
+
 
+
SignatureProvider - cn.felord.payment.wechat.v3中的类
+
+
签名 加签 验签 + + 我方请求微信服务器时,需要根据我方的API证书对参数进行加签;微信服务器会根据我方签名验签以确定请求来自我方服务器; + + 然后微信服务器响应我方请求并在响应报文中使用【微信平台证书】加签 我方需要根据规则验签是否响应来自微信支付服务器 + + 其中【微信平台证书】定期会进行更新,不受我方管控,我方需要适当的时候获取最新的证书列表。
+
+
SignatureProvider(WechatMetaContainer) - 类 的构造器cn.felord.payment.wechat.v3.SignatureProvider
+
+
Instantiates a new Signature provider.
+
+
signatureProvider - 类 中的变量cn.felord.payment.wechat.v3.WechatPayCallback
+
+
The Signature provider.
+
+
signatureProvider - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
The Signature provider.
+
+
signatureProvider - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient
+
+
The Signature provider.
+
+
signatureProvider() - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient
+
+
Signature provider signature provider.
+
+
signatureProvider(WechatMetaContainer) - 类 中的方法cn.felord.payment.wechat.WechatPayConfiguration
+
+
微信支付V3签名工具.
+
+
signType - 类 中的变量cn.felord.payment.alipay.AliPayProperties.V1
+
+
sign type default RSA2
+
+
singleitem - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
singleitemDiscountOff - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
SingleitemDiscountOff - cn.felord.payment.wechat.v3.model中的类
+
+
单品优惠特定信息
+
+
SingleitemDiscountOff() - 类 的构造器cn.felord.payment.wechat.v3.model.SingleitemDiscountOff
+
 
+
singlePriceMax - 类 中的变量cn.felord.payment.wechat.v3.model.SingleitemDiscountOff
+
 
+
spOpenid - 类 中的变量cn.felord.payment.wechat.v3.model.Payer
+
+
用户服务标识
+
+
startAndRestartAndPauseStockFunction(WechatPayV3Type, String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Start and restart and pause stock function request entity.
+
+
startStock(String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
激活代金券批次API + + 制券成功后,通过调用此接口激活批次,如果是预充值代金券,激活时会从商户账户余额中锁定本批次的营销资金。
+
+
status - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
status - 类 中的变量cn.felord.payment.wechat.v3.model.StocksQueryParams
+
+
根据API而定 + + 批次状态
+
+
status - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
券状态 null 不生效
+
+
Status() - 枚举 的构造器cn.felord.payment.wechat.v3.model.UserCouponsQueryParams.Status
+
 
+
stockCreatorMchid - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
stockCreatorMchid - 类 中的变量cn.felord.payment.wechat.v3.model.StocksSendParams
+
+
创建批次的商户号
+
+
stockDetailFunction(WechatPayV3Type, String) - 类 中的方法cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Stock detail function request entity.
+
+
stockId - 类 中的变量cn.felord.payment.wechat.v3.model.CouponConsumeData
+
 
+
stockId - 类 中的变量cn.felord.payment.wechat.v3.model.MchQueryParams
+
+
批次ID
+
+
stockId - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Stock id.
+
+
stockId - 类 中的变量cn.felord.payment.wechat.v3.model.StocksSendParams
+
+
批次号 必须为代金券(全场券或单品券)批次号,不支持立减与折扣。
+
+
stockId - 类 中的变量cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
+
批次号
+
+
stockName - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
批次名称
+
+
StocksCreateParams - cn.felord.payment.wechat.v3.model中的类
+
+
创建优惠券批次参数.
+
+
StocksCreateParams() - 类 的构造器cn.felord.payment.wechat.v3.model.StocksCreateParams
+
 
+
StocksQueryParams - cn.felord.payment.wechat.v3.model中的类
+
+
查询参数,适用以下接口: + + 条件查询批次列表API
+
+
StocksQueryParams() - 类 的构造器cn.felord.payment.wechat.v3.model.StocksQueryParams
+
 
+
StocksSendParams - cn.felord.payment.wechat.v3.model中的类
+
+
代金券发放接口请求参数
+
+
StocksSendParams() - 类 的构造器cn.felord.payment.wechat.v3.model.StocksSendParams
+
 
+
StockStatus - cn.felord.payment.wechat.enumeration中的枚举
+
+
The enum Stock status.
+
+
StockStatus(String, String) - 枚举 的构造器cn.felord.payment.wechat.enumeration.StockStatus
+
 
+
stockType - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
批次类型
+
+
stockUseRule - 类 中的变量cn.felord.payment.wechat.v3.model.StocksCreateParams
+
+
批次使用规则
+
+
StockUseRule - cn.felord.payment.wechat.v3.model中的类
+
+
批次使用规则
+
+
StockUseRule() - 类 的构造器cn.felord.payment.wechat.v3.model.StockUseRule
+
 
+
store - 类 中的变量cn.felord.payment.wechat.v3.KeyPairFactory
+
 
+
storeInfo - 类 中的变量cn.felord.payment.wechat.v3.model.SceneInfo
+
+
商户门店信息
+
+
StoreInfo - cn.felord.payment.wechat.v3.model中的类
+
 
+
StoreInfo() - 类 的构造器cn.felord.payment.wechat.v3.model.StoreInfo
+
 
+
subMchid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineCloseParams.ClosingSubOrder
+
+
二级商户商户号,由微信支付生成并下发。
+
+
subMchid - 类 中的变量cn.felord.payment.wechat.v3.model.combine.SubOrder
+
+
二级商户商户号,由微信支付生成并下发。
+
+
subMchid - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Sub mchid.
+
+
subOpenid - 类 中的变量cn.felord.payment.wechat.v3.model.Payer
+
+
用户子标识
+
+
SubOrder - cn.felord.payment.wechat.v3.model.combine中的类
+
+
子单信息,最多50单.
+
+
SubOrder() - 类 的构造器cn.felord.payment.wechat.v3.model.combine.SubOrder
+
 
+
SubOrderCallback() - 类 的构造器cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
 
+
subOrders - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineCloseParams
+
+
子单信息,必填,最多50单
+
+
subOrders - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
子单信息,必填,最多50单
+
+
subOrders - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
子单信息,必填,最多50单
+
+
subOrders - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData
+
+
合单支付回调子订单.
+
+
subsidyAmount - 类 中的变量cn.felord.payment.wechat.v3.model.SettleInfo
+
+
补差金额
+
+
successTime - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Success time.
+
+
successTime - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Success time.
+
+
summary - 类 中的变量cn.felord.payment.wechat.v3.model.CallbackParams
+
+
The Summary.
+
+
+ + + +

T

+
+
tenantId - 类 中的变量cn.felord.payment.wechat.v3.AbstractApi
+
+
The Tenant id.
+
+
tenantId() - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Tenant id string.
+
+
tenantId - 类 中的变量cn.felord.payment.wechat.v3.WechatMetaBean
+
+
The Tenant id.
+
+
tenantId - 类 中的变量cn.felord.payment.wechat.v3.WechatPayCallback
+
+
The Tenant id.
+
+
tenantIds - 类 中的变量cn.felord.payment.wechat.v3.WechatMetaContainer
+
 
+
timeExpire - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
交易结束时间,选填
+
+
timeExpire - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
交易结束时间,选填
+
+
timeExpire - 类 中的变量cn.felord.payment.wechat.v3.model.PayParams
+
+
订单失效时间 YYYY-MM-DDTHH:mm:ss+TIMEZONE
+
+
timeStart - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams
+
+
交易起始时间,选填
+
+
timeStart - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombinePayParams
+
+
交易起始时间,选填
+
+
TOKEN_PATTERN - 类 中的静态变量cn.felord.payment.wechat.v3.SignatureProvider
+
+
The constant TOKEN_PATTERN.
+
+
toString() - 枚举 中的方法cn.felord.payment.wechat.enumeration.WeChatServer
+
 
+
total - 类 中的变量cn.felord.payment.wechat.v3.model.Amount
+
+
The Total.
+
+
total - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData.Amount
+
+
The Total.
+
+
totalAmount - 类 中的变量cn.felord.payment.wechat.v3.model.combine.CombineAmount
+
+
子单金额,单位为分,必填 + + 境外场景下,标价金额要超过商户结算币种的最小单位金额,例如结算币种为美元,则标价金额必须大于1美分
+
+
totalAmount - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.CombineAmount
+
+
标价金额,单位为分.
+
+
TradeState - cn.felord.payment.wechat.enumeration中的枚举
+
+
微信侧返回交易状态
+
+
TradeState() - 枚举 的构造器cn.felord.payment.wechat.enumeration.TradeState
+
 
+
tradeState - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Trade state.
+
+
tradeState - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Trade state.
+
+
tradeStateDesc - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Trade state desc.
+
+
TradeType - cn.felord.payment.wechat.enumeration中的枚举
+
+
微信侧返回交易类型
+
+
TradeType() - 枚举 的构造器cn.felord.payment.wechat.enumeration.TradeType
+
 
+
tradeType - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Trade type.
+
+
tradeType - 类 中的变量cn.felord.payment.wechat.v3.model.CouponUseRule
+
 
+
tradeType - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Trade type.
+
+
transactionCallback(ResponseSignVerifyParams, Consumer<TransactionConsumeData>) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayCallback
+
+
微信支付成功回调.
+
+
TransactionConsumeData - cn.felord.payment.wechat.v3.model中的类
+
 
+
TransactionConsumeData() - 类 的构造器cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
 
+
TransactionConsumeData.Amount - cn.felord.payment.wechat.v3.model中的类
+
+
The type Amount.
+
+
TransactionConsumeData.Payer - cn.felord.payment.wechat.v3.model中的类
+
+
The type Payer.
+
+
TransactionConsumeData.SceneInfo - cn.felord.payment.wechat.v3.model中的类
+
+
The type Scene info.
+
+
transactionId - 类 中的变量cn.felord.payment.wechat.v3.model.CombineTransactionConsumeData.SubOrderCallback
+
+
The Transaction id.
+
+
transactionId - 类 中的变量cn.felord.payment.wechat.v3.model.ConsumeInformation
+
 
+
transactionId - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionConsumeData
+
+
The Transaction id.
+
+
transactionIdOrOutTradeNo - 类 中的变量cn.felord.payment.wechat.v3.model.TransactionQueryParams
+
 
+
transactionMinimum - 类 中的变量cn.felord.payment.wechat.v3.model.FixedNormalCoupon
+
+
门槛 满M元可用
+
+
transactionMinimum - 类 中的变量cn.felord.payment.wechat.v3.model.NormalCouponInformation
+
 
+
TransactionQueryParams - cn.felord.payment.wechat.v3.model中的类
+
 
+
TransactionQueryParams() - 类 的构造器cn.felord.payment.wechat.v3.model.TransactionQueryParams
+
 
+
type - 类 中的变量cn.felord.payment.wechat.v3.model.H5Info
+
+
场景类型
+
+
type - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Type.
+
+
+ + + +

U

+
+
unitPrice - 类 中的变量cn.felord.payment.wechat.v3.model.Goods
+
+
商品单价
+
+
unitPrice - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail.GoodsDetail
+
+
The Unit price.
+
+
uri(WeChatServer) - 枚举 中的方法cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
默认支付URI.
+
+
UserCouponsQueryParams - cn.felord.payment.wechat.v3.model中的类
+
+
The type User coupons query params.
+
+
UserCouponsQueryParams() - 类 的构造器cn.felord.payment.wechat.v3.model.UserCouponsQueryParams
+
 
+
UserCouponsQueryParams.Status - cn.felord.payment.wechat.v3.model中的枚举
+
+
The enum Status.
+
+
+ + + +

V

+
+
v1 - 类 中的变量cn.felord.payment.alipay.AliPayProperties
+
+
alipay api version 1.0
+
+
V1() - 类 的构造器cn.felord.payment.alipay.AliPayProperties.V1
+
 
+
v3 - 类 中的变量cn.felord.payment.wechat.v3.WechatMetaBean
+
+
The V3.
+
+
v3 - 类 中的变量cn.felord.payment.wechat.WechatPayProperties
+
+
wechat pay V3 properties
+
+
V3() - 类 的构造器cn.felord.payment.wechat.WechatPayProperties.V3
+
 
+
value - 枚举 中的变量cn.felord.payment.wechat.enumeration.StockStatus
+
 
+
value() - 枚举 中的方法cn.felord.payment.wechat.enumeration.StockStatus
+
+
Value string.
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.BankCode
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.CouponBgColor
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.CouponStatus
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.StockStatus
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.TradeState
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.TradeType
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.WeChatServer
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.v3.model.UserCouponsQueryParams.Status
+
+
返回带有指定名称的该类型的枚举常量。
+
+
valueOf(String) - 枚举 中的静态方法cn.felord.payment.wechat.v3.WechatPayCallback.EventType
+
+
返回带有指定名称的该类型的枚举常量。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.BankCode
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.CouponBgColor
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.CouponStatus
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.StockStatus
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.TradeState
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.TradeType
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.enumeration.WeChatServer
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.v3.model.UserCouponsQueryParams.Status
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
values() - 枚举 中的静态方法cn.felord.payment.wechat.v3.WechatPayCallback.EventType
+
+
按照声明该枚举类型的常量的顺序, 返回 +包含这些常量的数组。
+
+
+ + + +

W

+
+
WechatApiProvider - cn.felord.payment.wechat.v3中的类
+
+
微信支付工具.
+
+
WechatApiProvider(WechatPayClient) - 类 的构造器cn.felord.payment.wechat.v3.WechatApiProvider
+
+
Instantiates a new Wechat api provider.
+
+
wechatApiProvider(WechatPayClient) - 类 中的方法cn.felord.payment.wechat.WechatPayConfiguration
+
+
多租户接口Provider.
+
+
WechatCombinePayApi - cn.felord.payment.wechat.v3中的类
+
+
微信合单支付.
+
+
WechatCombinePayApi(WechatPayClient, String) - 类 的构造器cn.felord.payment.wechat.v3.WechatCombinePayApi
+
+
Instantiates a new Abstract api.
+
+
WechatDirectPayApi - cn.felord.payment.wechat.v3中的类
+
+
普通支付-直连模式.
+
+
WechatDirectPayApi(WechatPayClient, String) - 类 的构造器cn.felord.payment.wechat.v3.WechatDirectPayApi
+
+
Instantiates a new Wechat pay api.
+
+
WechatMarketingFavorApi - cn.felord.payment.wechat.v3中的类
+
+
微信支付营销代金券API
+
+
WechatMarketingFavorApi(WechatPayClient, String) - 类 的构造器cn.felord.payment.wechat.v3.WechatMarketingFavorApi
+
+
Instantiates a new Wechat marketing favor api.
+
+
wechatMetaBean() - 类 中的方法cn.felord.payment.wechat.v3.AbstractApi
+
+
Wechat meta bean wechat meta bean.
+
+
WechatMetaBean - cn.felord.payment.wechat.v3中的类
+
+
微信支付元数据Bean.
+
+
WechatMetaBean() - 类 的构造器cn.felord.payment.wechat.v3.WechatMetaBean
+
 
+
wechatMetaBeanMap - 类 中的变量cn.felord.payment.wechat.v3.WechatMetaContainer
+
 
+
wechatMetaContainer - 类 中的变量cn.felord.payment.wechat.v3.SignatureProvider
+
+
The Wechat meta container.
+
+
wechatMetaContainer() - 类 中的方法cn.felord.payment.wechat.v3.SignatureProvider
+
+
Wechat meta container.
+
+
WechatMetaContainer - cn.felord.payment.wechat.v3中的类
+
+
配置容器
+
+
WechatMetaContainer() - 类 的构造器cn.felord.payment.wechat.v3.WechatMetaContainer
+
 
+
wechatMetaContainer(WechatPayProperties) - 类 中的方法cn.felord.payment.wechat.WechatPayConfiguration
+
+
微信支付公私钥 以及序列号等元数据.
+
+
WechatPayCallback - cn.felord.payment.wechat.v3中的类
+
+
微信支付回调工具.
+
+
WechatPayCallback(SignatureProvider, String) - 类 的构造器cn.felord.payment.wechat.v3.WechatPayCallback
+
+
Instantiates a new Wechat pay callback.
+
+
WechatPayCallback.EventType - cn.felord.payment.wechat.v3中的枚举
+
+
事件类型用于处理回调.
+
+
wechatPayClient - 类 中的变量cn.felord.payment.wechat.v3.AbstractApi
+
+
The Wechat pay client.
+
+
wechatPayClient - 类 中的变量cn.felord.payment.wechat.v3.WechatApiProvider
+
+
The Wechat pay client.
+
+
WechatPayClient - cn.felord.payment.wechat.v3中的类
+
+
The type Wechat pay client.
+
+
WechatPayClient(SignatureProvider) - 类 的构造器cn.felord.payment.wechat.v3.WechatPayClient
+
+
Instantiates a new Wechat pay service.
+
+
wechatPayClient(SignatureProvider) - 类 中的方法cn.felord.payment.wechat.WechatPayConfiguration
+
+
微信支付V3 客户端.
+
+
WechatPayClient.Executor<M> - cn.felord.payment.wechat.v3中的类
+
+
The type Executor.
+
+
WechatPayConfiguration - cn.felord.payment.wechat中的类
+
+
The type Wechat pay configuration.
+
+
WechatPayConfiguration() - 类 的构造器cn.felord.payment.wechat.WechatPayConfiguration
+
 
+
wechatpayContribute - 类 中的变量cn.felord.payment.wechat.v3.model.PromotionDetail
+
+
The Wechatpay contribute.
+
+
wechatpayGoodsId - 类 中的变量cn.felord.payment.wechat.v3.model.Goods
+
+
微信侧商品编码
+
+
wechatpayNonce - 类 中的变量cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams
+
+
response.headers['Wechatpay-Nonce'] 微信服务器提供的随机串
+
+
WechatPayProperties - cn.felord.payment.wechat中的类
+
+
The type Wechat pay properties.
+
+
WechatPayProperties() - 类 的构造器cn.felord.payment.wechat.WechatPayProperties
+
 
+
WechatPayProperties.V3 - cn.felord.payment.wechat中的类
+
+
wechat pay v3 properties.
+
+
WechatPayResponseErrorHandler - cn.felord.payment.wechat中的类
+
 
+
WechatPayResponseErrorHandler() - 类 的构造器cn.felord.payment.wechat.WechatPayResponseErrorHandler
+
 
+
wechatpaySerial - 类 中的变量cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams
+
+
response.headers['Wechatpay-Serial'] 当前使用的微信平台证书序列号
+
+
wechatpaySignature - 类 中的变量cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams
+
+
response.headers['Wechatpay-Signature'] 微信平台签名
+
+
wechatpayTimestamp - 类 中的变量cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams
+
+
response.headers['Wechatpay-Timestamp'] 微信服务器的时间戳
+
+
WechatPayV3Type - cn.felord.payment.wechat.enumeration中的枚举
+
+
The Wechat Pay V3 type.
+
+
WechatPayV3Type(HttpMethod, String) - 枚举 的构造器cn.felord.payment.wechat.enumeration.WechatPayV3Type
+
+
Instantiates a new Wechat pay v 3 type.
+
+
wechatPayV3Type - 类 中的变量cn.felord.payment.wechat.v3.WechatPayClient.Executor
+
+
The V3 pay type.
+
+
WechatRequestEntity<T> - cn.felord.payment.wechat.v3中的类
+
+
The type Wechat request entity.
+
+
WechatRequestEntity(T, MultiValueMap<String, String>, HttpMethod, URI, Type, Consumer<ResponseEntity<ObjectNode>>) - 类 的构造器cn.felord.payment.wechat.v3.WechatRequestEntity
+
+
Instantiates a new Wechat request entity.
+
+
WechatResponseEntity<T> - cn.felord.payment.wechat.v3中的类
+
+
The type Wechat response entity.
+
+
WechatResponseEntity() - 类 的构造器cn.felord.payment.wechat.v3.WechatResponseEntity
+
 
+
WeChatServer - cn.felord.payment.wechat.enumeration中的枚举
+
+
The enum We chat server domain.
+
+
WeChatServer(String) - 枚举 的构造器cn.felord.payment.wechat.enumeration.WeChatServer
+
 
+
withType(WechatPayV3Type, M) - 类 中的方法cn.felord.payment.wechat.v3.WechatPayClient
+
+ +
+
write(MultiValueMap<String, ?>, MediaType, HttpOutputMessage) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
 
+
writeBoundary(OutputStream, byte[]) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Write boundary.
+
+
writeEnd(OutputStream, byte[]) - 类 中的静态方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Write end.
+
+
writeForm(MultiValueMap<String, Object>, MediaType, HttpOutputMessage) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Write form.
+
+
writeHeaders() - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter.MultipartHttpOutputMessage
+
+
Write headers.
+
+
writeMultipart(MultiValueMap<String, Object>, HttpOutputMessage) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Write multipart.
+
+
writeNewLine(OutputStream) - 类 中的静态方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Write new line.
+
+
writePart(String, HttpEntity<?>, OutputStream) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Write part.
+
+
writeParts(OutputStream, MultiValueMap<String, Object>, byte[]) - 类 中的方法cn.felord.payment.wechat.v3.ExtensionFormHttpMessageConverter
+
+
Write parts.
+
+
+A B C D E F G H I J K L M N O P Q R S T U V W 
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/index.html b/docs/apidocs/index.html new file mode 100644 index 0000000..c22cd0c --- /dev/null +++ b/docs/apidocs/index.html @@ -0,0 +1,76 @@ + + + + + + +payment-spring-boot 1.0.0.RELEASE API + + + + + + + + + +<noscript> +<div>您的浏览器已禁用 JavaScript。</div> +</noscript> +<h2>框架预警</h2> +<p>请使用框架功能查看此文档。如果看到此消息, 则表明您使用的是不支持框架的 Web 客户机。链接到<a href="overview-summary.html">非框架版本</a>。</p> + + + diff --git a/docs/apidocs/overview-frame.html b/docs/apidocs/overview-frame.html new file mode 100644 index 0000000..64c1a34 --- /dev/null +++ b/docs/apidocs/overview-frame.html @@ -0,0 +1,29 @@ + + + + + + +概览列表 (payment-spring-boot 1.0.0.RELEASE API) + + + + + +
所有类
+
+

程序包

+ +
+

 

+ + diff --git a/docs/apidocs/overview-summary.html b/docs/apidocs/overview-summary.html new file mode 100644 index 0000000..442b80a --- /dev/null +++ b/docs/apidocs/overview-summary.html @@ -0,0 +1,168 @@ + + + + + + +概览 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

payment-spring-boot 1.0.0.RELEASE API

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
程序包 
程序包说明
cn.felord.payment 
cn.felord.payment.alipay 
cn.felord.payment.autoconfigure 
cn.felord.payment.wechat 
cn.felord.payment.wechat.enumeration 
cn.felord.payment.wechat.v3 
cn.felord.payment.wechat.v3.model 
cn.felord.payment.wechat.v3.model.combine 
+
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/overview-tree.html b/docs/apidocs/overview-tree.html new file mode 100644 index 0000000..1dcc240 --- /dev/null +++ b/docs/apidocs/overview-tree.html @@ -0,0 +1,278 @@ + + + + + + +类分层结构 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

所有程序包的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +

注释类型分层结构

+ +

枚举分层结构

+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/package-list b/docs/apidocs/package-list new file mode 100644 index 0000000..31107b1 --- /dev/null +++ b/docs/apidocs/package-list @@ -0,0 +1,8 @@ +cn.felord.payment +cn.felord.payment.alipay +cn.felord.payment.autoconfigure +cn.felord.payment.wechat +cn.felord.payment.wechat.enumeration +cn.felord.payment.wechat.v3 +cn.felord.payment.wechat.v3.model +cn.felord.payment.wechat.v3.model.combine diff --git a/docs/apidocs/script.js b/docs/apidocs/script.js new file mode 100644 index 0000000..b346356 --- /dev/null +++ b/docs/apidocs/script.js @@ -0,0 +1,30 @@ +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} diff --git a/docs/apidocs/serialized-form.html b/docs/apidocs/serialized-form.html new file mode 100644 index 0000000..561c633 --- /dev/null +++ b/docs/apidocs/serialized-form.html @@ -0,0 +1,139 @@ + + + + + + +序列化表格 (payment-spring-boot 1.0.0.RELEASE API) + + + + + + + + +
+ + +
跳过导航链接
+ + + + +
+ + +
+

序列化表格

+
+
+ +
+ +
+ + +
跳过导航链接
+ + + + +
+ + +

Copyright © 2020. All rights reserved.

+ + diff --git a/docs/apidocs/stylesheet.css b/docs/apidocs/stylesheet.css new file mode 100644 index 0000000..98055b2 --- /dev/null +++ b/docs/apidocs/stylesheet.css @@ -0,0 +1,574 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.useSummary td.colFirst, .useSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 0000000..95f9bcc --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,31 @@ +## 1.0.3.RELEASE +- 微信支付 + - feat: 完善合单支付账单 + 1. 增加合单支付-申请交易账单API。 + 2. 增加合单支付-申请资金账单API。 + - fix: #I2BCMZ 合单支付url不正确的问题。 + - fix: 微信支付能够正确根据环境条件动态启用了,修复了不配置微信支付时,无法启用支付宝的问题。 + 1. 当配置中存在`wechat.pay.v3`配置时,微信支付启用;否则微信支付不启用,不会再影响支付宝的运行。 + - refactor: 先享卡优化 + +## 1.0.2.RELEASE +- 微信支付 + - feat: 接入微信支付分 + - feat: 接入微信支付先享卡 + - fix: 支付回调参数不全的问题 + +## 1.0.1.RELEASE + +- 微信支付 + - 基础支付-商户直连 bugfix + - 合单支付 + +## 1.0.0.RELEASE + +- 微信支付 + - 基础支付-商户直连 + - 代金券 + - 多租户 +- 支付宝 + - 仅仅引入支付宝SDK,后续维护以支付宝SDK变动为准 + - 支付宝暂时不支持多租户 \ No newline at end of file diff --git a/docs/img/cert_path.png b/docs/img/cert_path.png new file mode 100644 index 0000000..2b627b0 Binary files /dev/null and b/docs/img/cert_path.png differ diff --git a/docs/img/csr.png b/docs/img/csr.png new file mode 100644 index 0000000..d13c90e Binary files /dev/null and b/docs/img/csr.png differ diff --git a/docs/img/file_info.png b/docs/img/file_info.png new file mode 100644 index 0000000..dc6e4cc Binary files /dev/null and b/docs/img/file_info.png differ diff --git a/docs/img/qqun.png b/docs/img/qqun.png new file mode 100644 index 0000000..90b1f49 Binary files /dev/null and b/docs/img/qqun.png differ diff --git a/docs/img/set.png b/docs/img/set.png new file mode 100644 index 0000000..506b44b Binary files /dev/null and b/docs/img/set.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..af648f0 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,40 @@ + + + + + Document + + + + + + + +
加载中……
+ + + + + + + + + + diff --git a/docs/quick_start.md b/docs/quick_start.md new file mode 100644 index 0000000..cd2d15e --- /dev/null +++ b/docs/quick_start.md @@ -0,0 +1,177 @@ +## Maven 中央仓库坐标 + +```xml + + cn.felord + payment-spring-boot-starter + 1.0.3.RELEASE + +``` +> 基于 **Spring Boot 2.4.1** + +## Spring Boot 版本适配 + +需要自行克隆项目,修改根目录下的`pom.xml`以下配置项: +```xml + + + 2.4.0 + +``` +然后安装使用 + +## 自行安装 + +以**Spring Boot Starter**的形式集成到项目中。从[GitHub项目地址](https://github.com/NotFound403/payment-spring-boot)拉取`release`分支到本地后使用以下两种方式之一进行环境集成: + +- `mvn install` 安装到本地 +- `mvn deploy`部署到**Maven**仓库 + + + +然后引用**Maven**坐标,请注意`${payment-spring-boot-starter.version}`要同你安装的一致。 + +```xml + + cn.felord + payment-spring-boot-starter + ${payment-spring-boot-starter.version} + +``` +## 配置 + +### 微信支付 +在Spring Boot项目中的`application.yaml`中配置`wechat.pay.v3`相关参数。 +```yaml +wechat: + pay: + v3: +# 租户id + : +# 应用appId 必填 + app-id: xxxxxxxx +# api 密钥 可不填 + app-secret: xxxxxxxxxxx +# api v3 密钥 必填 + app-v3-secret: xxxxxxxx +# 微信支付商户号 必填 + mch-id: xxxxxxx +# 商户服务器域名 用于回调 需要放开回调接口的安全策略 必填 + domain: https://felord.cn +# 商户 api 证书路径 必填 填写classpath路径 位于 maven项目的resources文件下 + cert-path: apiclient_cert.p12 + +``` +#### 微信支付 tentantID 场景说明 + +当项目中需要同时支持微信App支付、微信公众号支付、微信小程序支付时,上述配置中的`app-id`可能为多个,因此我们需要进行路由标识以区分它们,所以这里需要你定义一个`tentanID`来进行标识。假如我们同时有App支付和微信小程序支付,我们应该这样配置: + +```yaml +wechat: + pay: + v3: + # App租户租户标识为 mobile + mobile: + app-id: wx524534x423234 + app-secret: felord + app-v3-secret: 0e5b123323h12234927e455703ec + mch-id: 1603337223 + domain: https://felord.cn/mobile + cert-path: mobile/apiclient_cert.p12 + # 微信小程序租户标识为 miniapp + miniapp: + app-id: wx344123x3541223 + app-secret: felord + app-v3-secret: 0e5b123323h12234927e455703ec + mch-id: 1603337223 + domain: https://felord.cn/miniapp + cert-path: miniapp/apiclient_cert.p12 +``` + +> ❗注意:在一套系统中需要开发者保证`tentanID`唯一。 + +### 支付宝 + +在Spring Boot项目中的`application.yaml`中配置`ali.pay.v1`相关参数。 +```yaml +ali: + pay: + v1: +# 可以替换为沙箱 + server-url: https://openapi.alipaydev.com/gateway.do +# 蚂蚁开放平台申请并认证的应用appId + app-id: 2016223700762343 + app-private-key-path: META-INF/app_rsa + alipay-public-cert-path: META-INF/alipayCertPublicKey_RSA2.crt + alipay-root-cert-path: META-INF/alipayRootCert.crt + app-cert-public-key-path: META-INF/appCertPublicKey_2016102700769563.crt + charset: utf-8 + format: json + sign-type: RSA2 +``` +> ❗注意:只有`ali.pay.v1.app-id`设置了有效值才能启用支付宝API。 + +## 启用配置 + +配置完毕后需要启用`@EnableMobilePay`注解来开启支付功能: + +```java +@EnableMobilePay +@Configuration +public class PayConfig { +} +``` +## 使用API + +### 微信支付 + +微信支付V3开放接口都是通过`WechatApiProvider`引入的,当[启用配置](/quick_start?id=启用配置)步骤完成后会被初始化并注入了**Spring IoC**,可通过如下形式引入: +```java + @Autowired + WechatApiProvider wechatApiProvider; +``` +`WechatApiProvider`需要开发者明确租户ID[tenantID](quick_start?id=微信支付-tentantid-场景说明)以初始化具体场景的**Api**。例如查询终端用户在租户`mobile`下的优惠券: + +```java + // 查询商户下的优惠券 + @Test + public void v3MchStocks() { + // 配置文件中对应的tenantID: + String tenantId =“mobile”; + StocksQueryParams params = new StocksQueryParams(); + params.setOffset(0); + params.setLimit(10); + WechatResponseEntity objectNodeWechatResponseEntity = wechatApiProvider.favorApi(tenantId).queryStocksByMch(params); + System.out.println("objectNodeWechatResponseEntity = " + objectNodeWechatResponseEntity); + } +``` + + +### 支付宝 +当[启用配置](/quick_start?id=启用配置)步骤完成后会初始化支付宝支付客户端接口`AlipayClient`并注入**Spring IoC**,可通过以下形式引入: +```java + @Autowired + AlipayClient alipayClient; +``` +调用,以现金红包为例: +```java + @SneakyThrows + public void campaignCash() { + AlipayMarketingCampaignCashCreateRequest request = new AlipayMarketingCampaignCashCreateRequest(); + request.setBizContent("{" + + "\"coupon_name\":\"XXX周年庆红包\"," + + "\"prize_type\":\"random\"," + + "\"total_money\":\"10000.00\"," + + "\"total_num\":\"1000\"," + + "\"prize_msg\":\"XXX送您大红包\"," + + "\"start_time\":\"2020-11-02 22:48:30\"," + + "\"end_time\":\"2020-12-01 22:48:30\"," + + "\"merchant_link\":\"http://www.weibo.com\"," + + "\"send_freqency\":\"D3|L10\"" + + " }"); + + AlipayMarketingCampaignCashCreateResponse execute = alipayClient.certificateExecute(request); + + System.out.println("execute = " + execute.getBody()); + } +``` \ No newline at end of file diff --git a/docs/stackoverflow.md b/docs/stackoverflow.md new file mode 100644 index 0000000..8982758 --- /dev/null +++ b/docs/stackoverflow.md @@ -0,0 +1,56 @@ +## 微信 +### 微信支付技术分享 +- [Java中的微信支付(1):API V3版本签名详解](https://mp.weixin.qq.com/s/iiTCr57FgbAb6s0P0hT-9Q) +- [Java中的微信支付(2):API V3 微信平台证书的获取与刷新](https://mp.weixin.qq.com/s/O_YcnIRcl2MltElBupm3Hg) +- [Java中的微信支付(3):API V3对微信服务器响应进行签名验证](https://mp.weixin.qq.com/s/cb2eTTRjHifNYUGpQETMCQ) +### 微信支付V3中的坑 +#### 代金券 +- 代金券制券后不能修改,所以一定要注意 +- 已激活的代金券批次被停用后不影响该批次已发放代金券的核销 +- 代金券激活券和制券要有一定的间隔时间,官方说是1分钟 +- 发券不需要靠微信服务号,官方的描述是错误的,有一个支持微信登录的appid就行了 +- 制券 返回`403`,报文`{"code":"REQUEST_BLOCKED","message":"活动未开始或已结束\n"}`检查规则是否符合: + ``` + 1.stock_name:最多可填写9个字 + 2.max_coupons_per_user:单天发放个数上限不能为0 + 3. coupon_amount:10<=coupon_amount<=100000 + 4.available_time_after_receive:可用时间:相对时间,按分钟设置,是否1min<=分钟范围<=1440min + 5.transaction_minimum校验规则: + a、使用门槛-券面额>=0.01(门槛要大于面额) + b、0.1元<=门槛<=100000 + 6.stock_type:目前只支持NORMAL + 7.out_request_no:校验规则:不可以重复 + 8.活动时间不可以大于90天 + ``` +#### 微信支付分 +- 微信支付分`service_id`相关 +``` + 1. 在微信支付分功能申请成功后,联系运营那边配置 service_id。 + 2. service_id 是微信支付商户属性 + 3. 一个 service_id 可以对应多个 mchid + 4. 更多的就要联系微信支付BD了 +``` + +!> 不要过分相信微信文档,微信文档不一定是真的,要问就问他们客服 + +## 支付宝 + +### 支付宝证书 + +请注意因为未来**SHA1withRSA**将被淘汰,因此采用最新的**SHA256withRSA**证书,旧的模式将不提供支持。步骤如下: + +1.使用支付宝开发助手申请CSR文件 + +![先申请密钥对,再申请csr](./img/csr.png) +申请成功后看文件说明: + +![](./img/file_info.png) + +2.上传CSR设置证书 + +![](./img/set.png) + +上传成功后需要下载证书,和配置的对应关系为: + +![](./img/cert_path.png) + diff --git a/docs/wechat_v3_api.md b/docs/wechat_v3_api.md new file mode 100644 index 0000000..da4b6e0 --- /dev/null +++ b/docs/wechat_v3_api.md @@ -0,0 +1,112 @@ +## 入口类 + +`WechatApiProvider`是本项目微信支付的入口类,已被注入**Spring IoC**。它目前包含以下几个**API**(后续会增加)。 + +### 代金券API + +`WechatMarketingFavorApi`是微信支付营销工具-[代金券相关API](https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/convention.shtml)的封装。 + +#### 创建代金券批次API + +`WechatResponseEntity createStock(StocksCreateParams params)` + +#### 激活代金券批次API + + `WechatResponseEntity startStock(String stockId)` + +#### 发放代金券API + +`WechatResponseEntity sendStock(StocksSendParams params)` + +#### 暂停代金券批次API + +`WechatResponseEntity pauseStock(String stockId)` + +#### 重启代金券批次API + +`WechatResponseEntity restartStock(String stockId)` + +#### 条件查询批次列表API +通过此接口可查询多个批次的信息,包括批次的配置信息以及批次概况数据。 + +`WechatResponseEntity queryStocksByMch(StocksQueryParams params)` + +#### 查询批次详情API + +`WechatResponseEntity queryStockDetail(String stockId)` + +#### 查询代金券详情API + +`WechatResponseEntity queryCouponDetails(CouponDetailsQueryParams params)` + +#### 查询代金券可用商户API + +`WechatResponseEntity queryMerchantsByStockId(StocksQueryParams params)` + +#### 查询代金券可用单品API + +`WechatResponseEntity queryStockItems(StocksQueryParams params)` + +#### 根据商户号查用户的券API + +`WechatResponseEntity queryUserCouponsByMchId(UserCouponsQueryParams params)` + +#### 下载批次核销明细API + +`WechatResponseEntity downloadStockUseFlow(String stockId)` + +#### 下载批次退款明细API + +`WechatResponseEntity downloadStockRefundFlow(String stockId)` + +#### 营销图片上传API + +`WechatResponseEntity marketingImageUpload(MultipartFile file)` + +#### 代金券核销回调通知API + +`WechatResponseEntity setMarketingFavorCallback(String notifyUrl)` + +### 普通支付-直连模式API + +`WechatDirectPayApi`是微信基础支付工具-[普通支付-直连模式API](https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/transactions.shtml)的封装。 + +#### APP下单API + +`WechatResponseEntity appPay(PayParams payParams)` + +#### JSAPI/小程序下单API + +`WechatResponseEntity jsPay(PayParams payParams)` + +#### Native下单API + +`WechatResponseEntity nativePay(PayParams payParams)` + +#### H5下单API + +`WechatResponseEntity h5Pay(PayParams payParams)` + +#### 微信支付订单号查询API + +`WechatResponseEntity queryTransactionById(TransactionQueryParams params)` + +#### 商户订单号查询API + +`WechatResponseEntity queryTransactionByOutTradeNo(TransactionQueryParams params)` + +#### 关单API + +`WechatResponseEntity close(String outTradeNo)` + +### 回调API + +所有需要回调处理的微信支付业务通过`WechatPayCallback`来进行处理。 + +#### 微信支付代金券核销回调API + +`Map couponCallback(ResponseSignVerifyParams params, Consumer couponConsumeDataConsumer)` + +#### 微信支付普通支付回调API + +`Map transactionCallback(ResponseSignVerifyParams params, Consumer couponConsumeDataConsumer)` \ No newline at end of file diff --git a/payment-spring-boot-autoconfigure/pom.xml b/payment-spring-boot-autoconfigure/pom.xml new file mode 100644 index 0000000..6c96d52 --- /dev/null +++ b/payment-spring-boot-autoconfigure/pom.xml @@ -0,0 +1,61 @@ + + + + cn.felord + payment-spring-boot + 1.0.3.RELEASE + + + payment-spring-boot-autoconfigure + 1.0.3.RELEASE + jar + 4.0.0 + + + 1.8 + 1.8 + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-autoconfigure + true + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.projectlombok + lombok + compile + + + org.springframework.boot + spring-boot-starter-logging + provided + + + org.springframework.boot + spring-boot-starter-web + provided + + + org.bouncycastle + bcprov-jdk15to18 + true + + + com.alipay.sdk + alipay-sdk-java + + + + \ No newline at end of file diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/PayException.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/PayException.java new file mode 100644 index 0000000..8d605ec --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/PayException.java @@ -0,0 +1,45 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class PayException extends RuntimeException { + + public PayException() { + } + + public PayException(String message) { + super(message); + } + + public PayException(String message, Throwable cause) { + super(message, cause); + } + + public PayException(Throwable cause) { + super(cause); + } + + public PayException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/alipay/AliPayConfiguration.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/alipay/AliPayConfiguration.java new file mode 100644 index 0000000..110f64c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/alipay/AliPayConfiguration.java @@ -0,0 +1,91 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.alipay; + + +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.CertAlipayRequest; +import com.alipay.api.DefaultAlipayClient; +import cn.felord.payment.PayException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.context.properties.PropertyMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.ClassPathResource; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Slf4j +@Configuration +@ConditionalOnProperty(prefix = "ali.pay", name = "v1.app-id") +@EnableConfigurationProperties(AliPayProperties.class) +public class AliPayConfiguration { + + @Bean + public AlipayClient alipayClient(AliPayProperties aliPayProperties) throws AlipayApiException { + + PropertyMapper propertyMapper = PropertyMapper.get().alwaysApplyingWhenNonNull(); + + AliPayProperties.V1 v1 = aliPayProperties.getV1(); + CertAlipayRequest certAlipayRequest = new CertAlipayRequest(); + propertyMapper.from(v1::getServerUrl).to(certAlipayRequest::setServerUrl); + propertyMapper.from(v1::getAppId).to(certAlipayRequest::setAppId); + propertyMapper.from(v1::getAppPrivateKeyPath).as(this::appRSAPrivateKey).to(certAlipayRequest::setPrivateKey); + propertyMapper.from(v1::getFormat).to(certAlipayRequest::setFormat); + propertyMapper.from(v1::getCharset).to(certAlipayRequest::setCharset); + propertyMapper.from(v1::getSignType).to(certAlipayRequest::setSignType); + propertyMapper.from(v1::getAppCertPublicKeyPath).as(this::getFileAbsolutePath).to(certAlipayRequest::setCertPath); + propertyMapper.from(v1::getAlipayPublicCertPath).as(this::getFileAbsolutePath).to(certAlipayRequest::setAlipayPublicCertPath); + propertyMapper.from(v1::getAlipayRootCertPath).as(this::getFileAbsolutePath).to(certAlipayRequest::setRootCertPath); + return new DefaultAlipayClient(certAlipayRequest); + } + + private String getFileAbsolutePath(String classPath) { + try { + return new ClassPathResource(classPath).getFile().getAbsolutePath(); + } catch (IOException e) { + log.error("ali pay cert path is not exist ,{}", e.getMessage()); + throw new PayException("ali pay cert path is not exist"); + } + + } + + + private String appRSAPrivateKey(String classPath) { + try { + File file = new ClassPathResource(classPath).getFile(); + return new BufferedReader(new FileReader(file)).readLine(); + } catch (IOException e) { + log.error("ali pay app private key is required ,{}", e.getMessage()); + throw new PayException("ali pay app private key is required"); + } + } + + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/alipay/AliPayProperties.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/alipay/AliPayProperties.java new file mode 100644 index 0000000..f19b5de --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/alipay/AliPayProperties.java @@ -0,0 +1,89 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.alipay; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +/** + * The type Ali pay properties. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +@ConfigurationProperties("ali.pay") +public class AliPayProperties { + /** + * alipay api version 1.0 + */ + @NestedConfigurationProperty + private V1 v1; + + + /** + * The type V 1. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class V1 { + /** + * alipay server + */ + private String serverUrl = "https://openapi.alipay.com/gateway.do"; + /** + * your app ID + */ + private String appId; + /** + * your app private key, which must be in a single line + */ + private String appPrivateKeyPath; + /** + * sign type default RSA2 + */ + private String signType = "RSA2"; + /** + * data format only json now + */ + private String format = "json"; + /** + * charset default utf-8 + */ + private String charset = "utf-8"; + /** + * alipay public cert path + */ + private String alipayPublicCertPath; + /** + * alipay root cert path + */ + private String alipayRootCertPath; + /** + * appCertPublicKey + */ + private String appCertPublicKeyPath; + + } + + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/autoconfigure/EnableMobilePay.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/autoconfigure/EnableMobilePay.java new file mode 100644 index 0000000..a9298a9 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/autoconfigure/EnableMobilePay.java @@ -0,0 +1,34 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.autoconfigure; + +import org.springframework.context.annotation.Import; + +import java.lang.annotation.*; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Import(PayConfiguration.class) +public @interface EnableMobilePay { +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/autoconfigure/PayConfiguration.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/autoconfigure/PayConfiguration.java new file mode 100644 index 0000000..90943b3 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/autoconfigure/PayConfiguration.java @@ -0,0 +1,33 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.autoconfigure; + +import cn.felord.payment.alipay.AliPayConfiguration; +import cn.felord.payment.wechat.WechatPayConfiguration; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Configuration +@Import({WechatPayConfiguration.class, AliPayConfiguration.class}) +public class PayConfiguration { +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java new file mode 100644 index 0000000..9878264 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguration.java @@ -0,0 +1,104 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat; + + +import cn.felord.payment.wechat.v3.*; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; +import org.springframework.context.annotation.Configuration; + +import java.util.Map; + +/** + * The type Wechat pay configuration. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Configuration +@Conditional(WechatPayConfiguredCondition.class) +@EnableConfigurationProperties(WechatPayProperties.class) +public class WechatPayConfiguration { + /** + * The constant CERT_ALIAS. + */ + private static final String CERT_ALIAS = "Tenpay Certificate"; + + /** + * 微信支付公私钥 以及序列号等元数据. + * + * @param wechatPayProperties the wechat pay properties + * @return the wechat cert bean + */ + @Bean + @ConditionalOnMissingBean + WechatMetaContainer wechatMetaContainer(WechatPayProperties wechatPayProperties) { + + Map v3Map = wechatPayProperties.getV3(); + WechatMetaContainer container = new WechatMetaContainer(); + KeyPairFactory keyPairFactory = new KeyPairFactory(); + v3Map.keySet().forEach(tenantId -> { + WechatPayProperties.V3 v3 = v3Map.get(tenantId); + String certPath = v3.getCertPath(); + String mchId = v3.getMchId(); + WechatMetaBean wechatMetaBean = keyPairFactory.createPKCS12(certPath, CERT_ALIAS, mchId); + wechatMetaBean.setV3(v3); + wechatMetaBean.setTenantId(tenantId); + container.addWechatMeta(tenantId, wechatMetaBean); + }); + return container; + } + + /** + * 微信支付V3签名工具. + * + * @param wechatMetaContainer the wechat meta container + * @return the signature provider + */ + @Bean + SignatureProvider signatureProvider(WechatMetaContainer wechatMetaContainer) { + return new SignatureProvider(wechatMetaContainer); + } + + + /** + * 微信支付V3 客户端. + * + * @param signatureProvider the signature provider + * @return the wechat pay service + */ + @Bean + public WechatPayClient wechatPayClient(SignatureProvider signatureProvider) { + return new WechatPayClient(signatureProvider); + } + + /** + * 多租户接口Provider. + * + * @param wechatPayClient the wechat pay client + * @return the wechat api provider + */ + @Bean + public WechatApiProvider wechatApiProvider(WechatPayClient wechatPayClient) { + return new WechatApiProvider(wechatPayClient); + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguredCondition.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguredCondition.java new file mode 100644 index 0000000..bb624a8 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayConfiguredCondition.java @@ -0,0 +1,64 @@ +/* + * + * Copyright 2019-2021 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat; + +import org.springframework.boot.autoconfigure.condition.ConditionMessage; +import org.springframework.boot.autoconfigure.condition.ConditionOutcome; +import org.springframework.boot.autoconfigure.condition.SpringBootCondition; +import org.springframework.boot.context.properties.bind.Bindable; +import org.springframework.boot.context.properties.bind.Binder; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.core.env.Environment; +import org.springframework.core.type.AnnotatedTypeMetadata; + +import java.util.Collections; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * The type Wechat pay configured condition. + * + * @author felord.cn + * @since 1.0.3.RELEASE + */ +public class WechatPayConfiguredCondition extends SpringBootCondition { + + /** + * The constant STRING_WECHAT_V3_MAP. + */ + private static final Bindable> STRING_WECHAT_V3_MAP = Bindable + .mapOf(String.class, WechatPayProperties.V3.class); + + @Override + public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) { + ConditionMessage.Builder message = ConditionMessage.forCondition("Wechat Pay V3 Configured Condition"); + Map v3 = getV3(context.getEnvironment()); + if (!v3.isEmpty()) { + return ConditionOutcome.match(message.foundExactly("registered wechat mchIds " + v3.values().stream() + .map(WechatPayProperties.V3::getMchId).collect(Collectors.joining(", ")))); + } + return ConditionOutcome.noMatch(message.notAvailable("registered wechat pay configs")); + } + + private Map getV3(Environment environment) { + return Binder.get(environment).bind("wechat.pay.v3", STRING_WECHAT_V3_MAP) + .orElse(Collections.emptyMap()); + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayProperties.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayProperties.java new file mode 100644 index 0000000..9c1022c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayProperties.java @@ -0,0 +1,78 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +import java.util.HashMap; +import java.util.Map; + +/** + * The type Wechat pay properties. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +@ConfigurationProperties("wechat.pay") +public class WechatPayProperties { + /** + * wechat pay V3 properties + */ + private Map v3 = new HashMap<>(); + + /** + * wechat pay v3 properties. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class V3 { + /** + * app id for wechat pay is required + */ + private String appId; + /** + * app secret for wechat pay is required + */ + private String appSecret; + /** + * app V3 secret is required by wechat pay V3 + */ + private String appV3Secret; + /** + * mchId for wechat pay is required + */ + private String mchId; + /** + * partnerKey for wechat pay is optional + */ + private String partnerKey; + /** + * wechat pay certificate Path + */ + private String certPath; + /** + * your pay server domain + */ + private String domain; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayResponseErrorHandler.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayResponseErrorHandler.java new file mode 100644 index 0000000..6290c5b --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/WechatPayResponseErrorHandler.java @@ -0,0 +1,36 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat; + +import org.springframework.http.client.ClientHttpResponse; +import org.springframework.web.client.DefaultResponseErrorHandler; + +import java.io.IOException; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class WechatPayResponseErrorHandler extends DefaultResponseErrorHandler { + + @Override + public boolean hasError(ClientHttpResponse response) throws IOException { + return false; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/BankCode.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/BankCode.java new file mode 100644 index 0000000..176a892 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/BankCode.java @@ -0,0 +1,332 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.enumeration; + + +/** + * 银行代码. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public enum BankCode { + /** + * 工商银行 + * + * @since 1.0.0.RELEASE + */ + BK_1002("1002", "工商银行"), + /** + * 农业银行 + * + * @since 1.0.0.RELEASE + */ + BK_1005("1005", "农业银行"), + /** + * 建设银行 + * + * @since 1.0.0.RELEASE + */ + BK_1003("1003", "建设银行"), + /** + * 中国银行 + * + * @since 1.0.0.RELEASE + */ + BK_1026("1026", "中国银行"), + /** + * 交通银行 + * + * @since 1.0.0.RELEASE + */ + BK_1020("1020", "交通银行"), + /** + * 招商银行 + * + * @since 1.0.0.RELEASE + */ + BK_1001("1001", "招商银行"), + /** + * 邮储银行 + * + * @since 1.0.0.RELEASE + */ + BK_1066("1066", "邮储银行"), + /** + * 民生银行 + * + * @since 1.0.0.RELEASE + */ + BK_1006("1006", "民生银行"), + /** + * 平安银行 + * + * @since 1.0.0.RELEASE + */ + BK_1010("1010", "平安银行"), + /** + * 中信银行 + * + * @since 1.0.0.RELEASE + */ + BK_1021("1021", "中信银行"), + /** + * 浦发银行 + * + * @since 1.0.0.RELEASE + */ + BK_1004("1004", "浦发银行"), + /** + * 兴业银行 + * + * @since 1.0.0.RELEASE + */ + BK_1009("1009", "兴业银行"), + /** + * 光大银行 + * + * @since 1.0.0.RELEASE + */ + BK_1022("1022", "光大银行"), + /** + * 广发银行 + * + * @since 1.0.0.RELEASE + */ + BK_1027("1027", "广发银行"), + /** + * 华夏银行 + * + * @since 1.0.0.RELEASE + */ + BK_1025("1025", "华夏银行"), + /** + * 宁波银行 + * + * @since 1.0.0.RELEASE + */ + BK_1056("1056", "宁波银行"), + /** + * 北京银行 + * + * @since 1.0.0.RELEASE + */ + BK_4836("4836", "北京银行"), + /** + * 上海银行 + * + * @since 1.0.0.RELEASE + */ + BK_1024("1024", "上海银行"), + /** + * 南京银行 + * + * @since 1.0.0.RELEASE + */ + BK_1054("1054", "南京银行"), + /** + * 长子县融汇村镇银行 + * + * @since 1.0.0.RELEASE + */ + BK_4755("4755", "长子县融汇村镇银行"), + /** + * 长沙银行 + * + * @since 1.0.0.RELEASE + */ + BK_4216("4216", "长沙银行"), + /** + * 浙江泰隆商业银行 + * + * @since 1.0.0.RELEASE + */ + BK_4051("4051", "浙江泰隆商业银行"), + /** + * 中原银行 + * + * @since 1.0.0.RELEASE + */ + BK_4753("4753", "中原银行"), + /** + * 企业银行(中国) + * + * @since 1.0.0.RELEASE + */ + BK_4761("4761", "企业银行(中国)"), + /** + * 顺德农商银行 + * + * @since 1.0.0.RELEASE + */ + BK_4036("4036", "顺德农商银行"), + /** + * 衡水银行 + * + * @since 1.0.0.RELEASE + */ + BK_4752("4752", "衡水银行"), + /** + * 长治银行 + * + * @since 1.0.0.RELEASE + */ + BK_4756("4756", "长治银行"), + /** + * 大同银行 + * + * @since 1.0.0.RELEASE + */ + BK_4767("4767", "大同银行"), + /** + * 河南省农村信用社 + * + * @since 1.0.0.RELEASE + */ + BK_4115("4115", "河南省农村信用社"), + /** + * 宁夏黄河农村商业银行 + * + * @since 1.0.0.RELEASE + */ + BK_4150("4150", "宁夏黄河农村商业银行"), + /** + * 山西省农村信用社 + * + * @since 1.0.0.RELEASE + */ + BK_4156("4156", "山西省农村信用社"), + /** + * 安徽省农村信用社 + * + * @since 1.0.0.RELEASE + */ + BK_4166("4166", "安徽省农村信用社"), + /** + * 甘肃省农村信用社 + * + * @since 1.0.0.RELEASE + */ + BK_4157("4157", "甘肃省农村信用社"), + /** + * 天津农村商业银行 + * + * @since 1.0.0.RELEASE + */ + BK_4153("4153", "天津农村商业银行"), + /** + * 广西壮族自治区农村信用社 + * + * @since 1.0.0.RELEASE + */ + BK_4113("4113", "广西壮族自治区农村信用社"), + /** + * 陕西省农村信用社 + * + * @since 1.0.0.RELEASE + */ + BK_4108("4108", "陕西省农村信用社"), + /** + * 深圳农村商业银行 + * + * @since 1.0.0.RELEASE + */ + BK_4076("4076", "深圳农村商业银行"), + /** + * 宁波鄞州农村商业银行 + * + * @since 1.0.0.RELEASE + */ + BK_4052("4052", "宁波鄞州农村商业银行"), + /** + * 浙江省农村信用社联合社 + * + * @since 1.0.0.RELEASE + */ + BK_4764("4764", "浙江省农村信用社联合社"), + /** + * 江苏省农村信用社联合社 + * + * @since 1.0.0.RELEASE + */ + BK_4217("4217", "江苏省农村信用社联合社"), + /** + * 江苏紫金农村商业银行股份有限公司 + * + * @since 1.0.0.RELEASE + */ + BK_4072("4072", "江苏紫金农村商业银行"), + /** + * 北京中关村银行股份有限公司 + * + * @since 1.0.0.RELEASE + */ + BK_4769("4769", "北京中关村银行"), + /** + * 星展银行(中国)有限公司 + * + * @since 1.0.0.RELEASE + */ + BK_4778("4778", "星展银行(中国)"), + /** + * 枣庄银行股份有限公司 + * + * @since 1.0.0.RELEASE + */ + BK_4766("4766", "枣庄银行"), + /** + * 海口联合农村商业银行股份有限公司 + * + * @since 1.0.0.RELEASE + */ + BK_4758("4758", "海口联合农村商业银行"), + /** + * 南洋商业银行(中国)有限公司 + * + * @since 1.0.0.RELEASE + */ + BK_4763("4763", "南洋商业银行(中国)"); + + + private final String code; + private final String bankName; + + BankCode(String code, String bankName) { + this.code = code; + this.bankName = bankName; + } + + /** + * Code string. + * + * @return the string + */ + public String code() { + return this.code; + } + + /** + * Bank name string. + * + * @return the string + */ + public String bankName() { + return this.bankName; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/ContractStatus.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/ContractStatus.java new file mode 100644 index 0000000..f3fc108 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/ContractStatus.java @@ -0,0 +1,45 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 微信先享卡的守约状态 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +public enum ContractStatus { + /** + * 约定进行中,表示用户在约定有效期内,尚未完成所有目标时,守约状态为约定进行中。 + */ + ONGOING, + + /** + * 约定到期核对中,在约定有效期结束后的一段时间,商户可对卡记录进行校对并做必要调整,守约状态为约定到期核对调整中。 + */ + SETTLING, + /** + * 已完成约定,表示用户在约定有效期内,已完成所有目标,守约状态为已完成约定。 + */ + FINISHED, + + /** + * 未完成约定,表示用户在约定有效期到期后,最终未完成所有约定目标,或用户提前退出约定,守约状态为未完成约定。 + */ + UNFINISHED +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CountType.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CountType.java new file mode 100644 index 0000000..216ca86 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CountType.java @@ -0,0 +1,35 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 优惠数量的类型标识 + * + * @author felord.cn + * @since 1.0.3.RELEASE + */ +public enum CountType { + /** + * 不限数量 + */ + COUNT_UNLIMITED, + /** + * 有限数量 + */ + COUNT_LIMIT +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CouponBgColor.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CouponBgColor.java new file mode 100644 index 0000000..1cb4b7b --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CouponBgColor.java @@ -0,0 +1,92 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 优惠券背景色 + *

+ * 详见优惠券背景色参考 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public enum CouponBgColor { + /** + * Color 010 coupon bg color. + */ + COLOR010("#63B359"), + /** + * Color 020 coupon bg color. + */ + COLOR020("#2C9F67"), + /** + * Color 030 coupon bg color. + */ + COLOR030("#509FC9"), + /** + * Color 040 coupon bg color. + */ + COLOR040("#5885CF"), + /** + * Color 050 coupon bg color. + */ + COLOR050("#9062C0"), + /** + * Color 060 coupon bg color. + */ + COLOR060("#D09A45"), + /** + * Color 070 coupon bg color. + */ + COLOR070("#E4B138"), + /** + * Color 080 coupon bg color. + */ + COLOR080("#EE903C"), + /** + * Color 090 coupon bg color. + */ + COLOR090("#DD6549"), + /** + * Color 100 coupon bg color. + */ + COLOR100("#CC463D"); + + /** + * The Color. + */ + private final String color; + + /** + * Instantiates a new Coupon bg color. + * + * @param color the color + */ + CouponBgColor(String color) { + this.color = color; + } + + /** + * Color string. + * + * @return the string + */ + public String color() { + return this.color; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CouponStatus.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CouponStatus.java new file mode 100644 index 0000000..0c534c0 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/CouponStatus.java @@ -0,0 +1,46 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 代金券状态. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public enum CouponStatus { + /** + * 可用. + * + * @since 1.0.0.RELEASE + */ + SENDED, + /** + * 已实扣. + * + * @since 1.0.0.RELEASE + */ + USED, + /** + * 已过期. + * + * @since 1.0.0.RELEASE + */ + EXPIRED +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/FundFlowAccountType.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/FundFlowAccountType.java new file mode 100644 index 0000000..effbbf8 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/FundFlowAccountType.java @@ -0,0 +1,38 @@ +/* + * + * Copyright 2019-2021 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 申请资金账单账户类型. + * + * @since 1.0.3.RELEASE + */ +public enum FundFlowAccountType { + /** + * 基本账户 + */ + BASIC, + /** + * 运营账户 + */ + OPERATION, + /** + * 手续费账户 + */ + FEES +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/StockStatus.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/StockStatus.java new file mode 100644 index 0000000..426bfa6 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/StockStatus.java @@ -0,0 +1,86 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 代金券批次状态. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public enum StockStatus { + /** + * Unactivated stock status. + * + * @since 1.0.0.RELEASE + */ + UNACTIVATED("unactivated", "未激活"), + /** + * Audit stock status. + * + * @since 1.0.0.RELEASE + */ + AUDIT("audit", "审核中"), + /** + * Running stock status. + * + * @since 1.0.0.RELEASE + */ + RUNNING("running", "运行中"), + /** + * Stoped stock status. + * + * @since 1.0.0.RELEASE + */ + STOPED("stoped", "已停止"), + /** + * Paused stock status. + * + * @since 1.0.0.RELEASE + */ + PAUSED("paused", "暂停发放"); + + private final String value; + private final String description; + + StockStatus(String value, String description) { + this.value = value; + this.description = description; + } + + /** + * Value string. + * + * @return the string + * @since 1.0.0.RELEASE + */ + public String value() { + return this.value; + } + + /** + * Description string. + * + * @return the string + * @since 1.0.0.RELEASE + */ + public String description() { + return this.description; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/StrategyType.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/StrategyType.java new file mode 100644 index 0000000..6322c47 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/StrategyType.java @@ -0,0 +1,35 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 目标完成类型、优惠使用类型 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +public enum StrategyType { + /** + * 增加数量,表示用户发生了履约行为 + */ + INCREASE, + /** + * 减少数量,表示取消用户的履约行为(例如用户取消购买、退货退款等) + */ + DECREASE +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TarType.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TarType.java new file mode 100644 index 0000000..5d0c90d --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TarType.java @@ -0,0 +1,31 @@ +/* + * + * Copyright 2019-2021 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 账单压缩类型 + * + * @author felord.cn + * @since 1.0.3.RELEASE + */ +public enum TarType { + /** + * 格式为{@code .gzip}的压缩包账单 + */ + GZIP +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeBillType.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeBillType.java new file mode 100644 index 0000000..8f7473d --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeBillType.java @@ -0,0 +1,40 @@ +/* + * + * Copyright 2019-2021 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 交易账单类型 + * + * @author felord.cn + * @since 1.0.3.RELEASE + */ +public enum TradeBillType { + /** + * 返回当日所有订单信息(不含充值退款订单) + */ + ALL, + /** + * 返回当日成功支付的订单(不含充值退款订单) + */ + SUCCESS, + /** + * 返回当日退款订单(不含充值退款订单) + */ + REFUND + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeState.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeState.java new file mode 100644 index 0000000..786e9d8 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeState.java @@ -0,0 +1,70 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 微信侧返回交易状态 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public enum TradeState { + /** + * 支付成功 + * + * @since 1.0.0.RELEASE + */ + SUCCESS, + /** + * 转入退款 + * + * @since 1.0.0.RELEASE + */ + REFUND, + /** + * 未支付 + * + * @since 1.0.0.RELEASE + */ + NOTPAY, + /** + * 已关闭 + * + * @since 1.0.0.RELEASE + */ + CLOSED, + /** + * 已撤销(付款码支付) + * + * @since 1.0.0.RELEASE + */ + REVOKED, + /** + * 用户支付中(付款码支付) + * + * @since 1.0.0.RELEASE + */ + USERPAYING, + /** + * 支付失败(其他原因,如银行返回失败) + * + * @since 1.0.0.RELEASE + */ + PAYERROR, +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeType.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeType.java new file mode 100644 index 0000000..d9a6c9e --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/TradeType.java @@ -0,0 +1,64 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 微信侧返回交易类型 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public enum TradeType { + /** + * 公众号支付 + * + * @since 1.0.0.RELEASE + */ + JSAPI, + /** + * 扫码支付 + * + * @since 1.0.0.RELEASE + */ + NATIVE, + /** + * APP支付 + * + * @since 1.0.0.RELEASE + */ + APP, + /** + * 付款码支付 + * + * @since 1.0.0.RELEASE + */ + MICROPAY, + /** + * H5支付 + * + * @since 1.0.0.RELEASE + */ + MWEB, + /** + * 刷脸支付 + * + * @since 1.0.0.RELEASE + */ + FACEPAY, +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/UnfinishedReason.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/UnfinishedReason.java new file mode 100644 index 0000000..f705629 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/UnfinishedReason.java @@ -0,0 +1,36 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.enumeration; + +/** + * 未完成约定原因 + *

+ * 当订单守约状态为{@link ContractStatus#UNFINISHED},返回此字段 + * + * @since 1.0.3.RELEASE + */ +public enum UnfinishedReason { + /** + * 到期未完成约 + */ + DUE_TO_QUIT, + /** + * 提前退出约定 + */ + EARLY_QUIT +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/WeChatServer.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/WeChatServer.java new file mode 100644 index 0000000..5430865 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/WeChatServer.java @@ -0,0 +1,92 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.enumeration; + + +/** + * The enum We chat server domain. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public enum WeChatServer { + /** + * 中国 + * + * @since 1.0.0.RELEASE + */ + CHINA("https://api.mch.weixin.qq.com"), + /** + * 中国国内(备用域名) + * + * @since 1.0.0.RELEASE + */ + CHINA2("https://api2.mch.weixin.qq.com"), + /** + * 香港 + * + * @since 1.0.0.RELEASE + */ + HK("https://apihk.mch.weixin.qq.com"), + /** + * 美国 + * + * @since 1.0.0.RELEASE + */ + US("https://apius.mch.weixin.qq.com"), + /** + * 获取公钥 + * + * @since 1.0.0.RELEASE + */ + FRAUD("https://fraud.mch.weixin.qq.com"), + /** + * 活动 + * + * @since 1.0.0.RELEASE + */ + ACTION("https://action.weixin.qq.com"); + + + /** + * 域名 + * + * @since 1.0.0.RELEASE + */ + private final String domain; + + WeChatServer(String domain) { + this.domain = domain; + } + + /** + * Gets type. + * + * @return the type + * @since 1.0.0.RELEASE + */ + public String domain() { + return domain; + } + + @Override + public String toString() { + return domain; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/WechatPayV3Type.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/WechatPayV3Type.java new file mode 100644 index 0000000..59bb9d1 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/enumeration/WechatPayV3Type.java @@ -0,0 +1,404 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.enumeration; + +import org.springframework.http.HttpMethod; + +/** + * 微信支付类型. + * + * @author felord.cn + * @see cn.felord.payment.wechat.v3.WechatPayClient + * @since 1.0.0.RELEASE + */ +public enum WechatPayV3Type { + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + /** + * 获取证书. + * + * @since 1.0.0.RELEASE + */ + CERT(HttpMethod.GET, "%s/v3/certificates"), + + /** + * 文件下载 + * + * @since 1.0.0.RELEASE + */ + FILE_DOWNLOAD(HttpMethod.GET, "%s/v3/billdownload/file"), + /** + * 申请交易账单API. + * + * @since 1.0.3.RELEASE + */ + TRADEBILL(HttpMethod.GET, "%s/v3/bill/tradebill"), + /** + * 申请资金账单API. + * + * @since 1.0.3.RELEASE + */ + FUNDFLOWBILL(HttpMethod.GET, "%s/v3/bill/fundflowbill"), + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + /** + * 微信公众号支付或者小程序支付. + * + * @since 1.0.0.RELEASE + */ + JSAPI(HttpMethod.POST, "%s/v3/pay/transactions/jsapi"), + + /** + * 微信扫码支付. + * + * @since 1.0.0.RELEASE + */ + NATIVE(HttpMethod.POST, "%s/v3/pay/transactions/native"), + + /** + * 微信APP支付. + * + * @since 1.0.0.RELEASE + */ + APP(HttpMethod.POST, "%s/v3/pay/transactions/app"), + + /** + * H5支付. + * + * @since 1.0.0.RELEASE + */ + MWEB(HttpMethod.POST, "%s/v3/pay/transactions/h5"), + /** + * 关闭订单. + * + * @since 1.0.0.RELEASE + */ + CLOSE(HttpMethod.POST, "%s/v3/pay/transactions/out-trade-no/{out_trade_no}/close"), + /** + * 微信支付订单号查询. + * + * @since 1.0.0.RELEASE + */ + TRANSACTION_TRANSACTION_ID(HttpMethod.GET, "%s/v3/pay/transactions/id/{transaction_id}"), + /** + * 商户订单号查询. + * + * @since 1.0.0.RELEASE + */ + TRANSACTION_OUT_TRADE_NO(HttpMethod.GET, "%s/v3/pay/transactions/out-trade-no/{out_trade_no}"), + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + /** + * 合单下单-APP支付API. + * + * @since 1.0.0.RELEASE + */ + COMBINE_APP(HttpMethod.POST, "%s/v3/combine-transactions/app"), + + /** + * 合单下单-微信公众号支付或者小程序支付. + * + * @since 1.0.0.RELEASE + */ + COMBINE_JSAPI(HttpMethod.POST, "%s/v3/combine-transactions/jsapi"), + /** + * 合单下单-H5支付API. + * + * @since 1.0.0.RELEASE + */ + COMBINE_MWEB(HttpMethod.POST, "%s/v3/combine-transactions/h5"), + /** + * 合单下单-Native支付API. + * + * @since 1.0.0.RELEASE + */ + COMBINE_NATIVE(HttpMethod.POST, "%s/v3/combine-transactions/native"), + /** + * 合单查询订单API. + * + * @since 1.0.0.RELEASE + */ + COMBINE_TRANSACTION_OUT_TRADE_NO(HttpMethod.GET, "%s/v3/combine-transactions/out-trade-no/{combine_out_trade_no}"), + + /** + * 合单关闭订单API. + * + * @since 1.0.0.RELEASE + */ + COMBINE_CLOSE(HttpMethod.POST, "%s/v3/combine-transactions/out-trade-no/{combine_out_trade_no}/close"), + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + /** + * 商户预授权API. + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_PERMISSIONS(HttpMethod.POST, "%s/v3/payscore/permissions"), + /** + * 创单结单合并API. + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_DIRECT_COMPLETE(HttpMethod.POST, "%s/payscore/serviceorder/direct-complete"), + /** + * 查询与用户授权记录(授权协议号)API. + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_PERMISSIONS_AUTH_CODE(HttpMethod.GET, "%s/v3/payscore/permissions/authorization-code/{authorization_code}"), + /** + * 解除用户授权关系(授权协议号)API. + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_TERMINATE_PERMISSIONS_AUTH_CODE(HttpMethod.POST, "%s/v3/payscore/permissions/authorization-code/{authorization_code}/terminate"), + /** + * 查询与用户授权记录(openid)API. + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_PERMISSIONS_OPENID(HttpMethod.GET, "%s/v3/payscore/permissions/openid/{openid}"), + /** + * 解除用户授权关系(openid)API. + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_TERMINATE_PERMISSIONS_OPENID(HttpMethod.POST, "%s/v3/payscore/permissions/openid/{openid}/terminate"), + /** + * 查询用户授权状态API. + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_USER_SERVICE_STATE(HttpMethod.GET, "%s/v3/payscore/user-service-state?service_id={service_id}&appid={appid}&openid={openid}"), + /** + * 创建支付分订单API + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_CREATE_USER_SERVICE_ORDER(HttpMethod.POST, "%s/v3/payscore/serviceorder"), + /** + * 查询支付分订单API + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_QUERY_USER_SERVICE_ORDER(HttpMethod.GET, "%s/v3/payscore/serviceorder"), + /** + * 取消支付分订单API + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_CANCEL_USER_SERVICE_ORDER(HttpMethod.POST, "%s/v3/payscore/serviceorder/{out_order_no}/cancel"), + /** + * 修改订单金额API + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_MODIFY_USER_SERVICE_ORDER(HttpMethod.POST, "%s/v3/payscore/serviceorder/{out_order_no}/modify"), + /** + * 完结支付分订单API + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_COMPLETE_USER_SERVICE_ORDER(HttpMethod.POST, "%s/v3/payscore/serviceorder/{out_order_no}/complete"), + /** + * 商户发起催收扣款API + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_PAY_USER_SERVICE_ORDER(HttpMethod.POST, "%s/v3/payscore/serviceorder/{out_order_no}/pay"), + /** + * 同步服务订单信息API + * + * @since 1.0.2.RELEASE + */ + PAY_SCORE_SYNC_USER_SERVICE_ORDER(HttpMethod.POST, "%s/v3/payscore/serviceorder/{out_order_no}/sync"), + + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + /** + * 微信先享卡预受理领卡请求API. + * + * @since 1.0.2.RELEASE + */ + DISCOUNT_CARD_PRE_REQUEST(HttpMethod.POST, "%s/v3/discount-card/cards"), + /** + * 微信先享卡增加用户记录API. + * + * @since 1.0.2.RELEASE + */ + DISCOUNT_CARD_ADD_USER_RECORDS(HttpMethod.POST, "%s/v3/discount-card/cards/{out_card_code}/add-user-records"), + /** + * 微信先享卡查询先享卡订单API. + * + * @since 1.0.2.RELEASE + */ + DISCOUNT_CARD_INFO(HttpMethod.POST, "%s/v3/discount-card/cards/{out_card_code}"), + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + /** + * 创建代金券批次API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_COUPON_STOCKS(HttpMethod.POST, "%s/v3/marketing/favor/coupon-stocks"), + /** + * 激活代金券批次API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_START(HttpMethod.POST, "%s/v3/marketing/favor/stocks/{stock_id}/start"), + /** + * 暂停代金券批次API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_PAUSE(HttpMethod.POST, "%s/v3/marketing/favor/stocks/{stock_id}/pause"), + + /** + * 发放代金券API、根据商户号查用户的券. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_USERS_COUPONS(HttpMethod.POST, "%s/v3/marketing/favor/users/{openid}/coupons"), + /** + * 重启代金券API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_RESTART(HttpMethod.POST, "%s/v3/marketing/favor/stocks/{stock_id}/restart"), + /** + * 条件查询批次列表API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS(HttpMethod.GET, "%s/v3/marketing/favor/stocks"), + /** + * 查询批次详情API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_DETAIL(HttpMethod.GET, "%s/v3/marketing/favor/stocks/{stock_id}"), + /** + * 查询代金券详情API + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_USERS_COUPONS_DETAIL(HttpMethod.GET, "%s/v3/marketing/favor/users/{openid}/coupons/{coupon_id}"), + /** + * 查询代金券可用商户API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_MERCHANTS(HttpMethod.GET, "%s/v3/marketing/favor/stocks/{stock_id}/merchants"), + /** + * 查询代金券可用单品API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_ITEMS(HttpMethod.GET, "%s/v3/marketing/favor/stocks/{stock_id}/items"), + /** + * 下载批次核销明细API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_USE_FLOW(HttpMethod.GET, "%s/v3/marketing/favor/stocks/{stock_id}/use-flow"), + /** + * 下载批次退款明细API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_STOCKS_REFUND_FLOW(HttpMethod.GET, "%s/v3/marketing/favor/stocks/{stock_id}/refund-flow"), + /** + * 营销图片上传API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_IMAGE_UPLOAD(HttpMethod.POST, "%s/v3/marketing/favor/media/image-upload"), + /** + * 设置核销回调通知API. + * + * @since 1.0.0.RELEASE + */ + MARKETING_FAVOR_CALLBACKS(HttpMethod.POST, "%s/v3/marketing/favor/callbacks"); + + + /** + * The Pattern. + * + * @since 1.0.0.RELEASE + */ + private final String pattern; + /** + * The Method. + * + * @since 1.0.0.RELEASE + */ + private final HttpMethod method; + + /** + * Instantiates a new Wechat pay v 3 type. + * + * @param method the method + * @param pattern the pattern + * @since 1.0.0.RELEASE + */ + WechatPayV3Type(HttpMethod method, String pattern) { + this.method = method; + this.pattern = pattern; + } + + /** + * Method string. + * + * @return the string + * @since 1.0.0.RELEASE + */ + public HttpMethod method() { + return this.method; + } + + /** + * Pattern string. + * + * @return the string + * @since 1.0.0.RELEASE + */ + public String pattern() { + return this.pattern; + } + + + /** + * 默认支付URI. + * + * @param weChatServer the we chat server + * @return the string + * @since 1.0.0.RELEASE + */ + public String uri(WeChatServer weChatServer) { + return String.format(this.pattern, weChatServer.domain()); + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/AbstractApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/AbstractApi.java new file mode 100644 index 0000000..ff27c9b --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/AbstractApi.java @@ -0,0 +1,266 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import cn.felord.payment.PayException; +import cn.felord.payment.wechat.enumeration.*; +import cn.felord.payment.wechat.v3.model.FundFlowBillParams; +import cn.felord.payment.wechat.v3.model.TradeBillParams; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.http.RequestEntity; +import org.springframework.util.Assert; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; +import org.springframework.web.util.UriComponentsBuilder; + +import java.net.URI; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Objects; +import java.util.Optional; + +/** + * The type Abstract api. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public abstract class AbstractApi { + /** + * The Mapper. + */ + private final ObjectMapper mapper; + /** + * The Wechat pay client. + */ + private final WechatPayClient wechatPayClient; + /** + * The Tenant id. + */ + private final String tenantId; + + + /** + * Instantiates a new Abstract api. + * + * @param wechatPayClient the wechat pay client + * @param tenantId the tenant id + */ + public AbstractApi(WechatPayClient wechatPayClient, String tenantId) { + this.mapper = new ObjectMapper(); + applyObjectMapper(this.mapper); + this.wechatPayClient = wechatPayClient; + Assert.hasText(tenantId, "tenantId is required"); + if (!container().getTenantIds().contains(tenantId)) { + throw new PayException("tenantId is not in wechatMetaContainer"); + } + this.tenantId = tenantId; + } + + /** + * Apply object mapper. + * + * @param mapper the mapper + */ + private void applyObjectMapper(ObjectMapper mapper) { + mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + SimpleModule module = new JavaTimeModule(); + mapper.registerModule(module); + } + + + /** + * Gets mapper. + * + * @return the mapper + */ + public ObjectMapper getMapper() { + return mapper; + } + + /** + * Client wechat pay client. + * + * @return the wechat pay client + */ + public WechatPayClient client() { + return wechatPayClient; + } + + /** + * Tenant id string. + * + * @return the string + */ + public String tenantId() { + return tenantId; + } + + /** + * Container wechat meta container. + * + * @return the wechat meta container + */ + public WechatMetaContainer container() { + return wechatPayClient.signatureProvider().wechatMetaContainer(); + } + + /** + * Wechat meta bean wechat meta bean. + * + * @return the wechat meta bean + */ + public WechatMetaBean wechatMetaBean() { + return container().getWechatMeta(tenantId); + } + + /** + * 构建Post请求对象. + * + * @param uri the uri + * @param params the params + * @return the request entity + */ + protected RequestEntity Post(URI uri, Object params) { + try { + return RequestEntity.post(uri).header("Pay-TenantId", tenantId) + .body(mapper.writeValueAsString(params)); + } catch (JsonProcessingException e) { + throw new PayException("wechat app pay json failed"); + } + } + + /** + * 构建Get请求对象. + * + * @param uri the uri + * @return the request entity + */ + protected RequestEntity Get(URI uri) { + return RequestEntity.get(uri).header("Pay-TenantId", tenantId) + .build(); + } + + + /** + * 对账单下载。 + * + * @param link the link + * @return 对账单内容,有可能为空字符 “” + */ + protected String billDownload(String link) { + return this.client().withType(WechatPayV3Type.FILE_DOWNLOAD, link) + .function((type, downloadUrl) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(downloadUrl) + .build() + .toUri(); + return Get(uri); + }) + .download(); + } + + + /** + * 申请交易账单API + *

+ * 微信支付按天提供交易账单文件,商户可以通过该接口获取账单文件的下载地址。文件内包含交易相关的金额、时间、营销等信息,供商户核对订单、退款、银行到账等情况。 + *

+ * 注意: + *

    + *
  • 微信侧未成功下单的交易不会出现在对账单中。支付成功后撤销的交易会出现在对账单中,跟原支付单订单号一致;
  • + *
  • 对账单中涉及金额的字段单位为“元”;
  • + *
  • 对账单接口只能下载三个月以内的账单。
  • + *
  • 小微商户不单独提供对账单下载,如有需要,可在调取“下载对账单”API接口时不传sub_mch_id,获取服务商下全量电商二级商户(包括小微商户和非小微商户)的对账单。
  • + *
+ * + * @param tradeBillParams tradeBillParams + * @since 1.0.3.RELEASE + */ + public final void downloadTradeBill(TradeBillParams tradeBillParams) { + this.client().withType(WechatPayV3Type.TRADEBILL, tradeBillParams) + .function((wechatPayV3Type, params) -> { + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + LocalDate billDate = params.getBillDate(); + queryParams.add("bill_date", billDate.format(DateTimeFormatter.ISO_DATE)); + String subMchid = params.getSubMchid(); + + if (StringUtils.hasText(subMchid)) { + queryParams.add("sub_mchid", subMchid); + } + + TradeBillType tradeBillType = Optional.ofNullable(params.getBillType()) + .orElse(TradeBillType.ALL); + queryParams.add("bill_type", tradeBillType.name()); + TarType tarType = params.getTarType(); + if (Objects.nonNull(tarType)) { + queryParams.add("tar_type", tarType.name()); + } + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build().toUri(); + return Get(uri); + }) + .consumer(response -> this.billDownload(Objects.requireNonNull(response.getBody()).get("download_url").asText())) + .request(); + } + + /** + * 申请资金账单API + *

+ * 微信支付按天提供微信支付账户的资金流水账单文件,商户可以通过该接口获取账单文件的下载地址。文件内包含该账户资金操作相关的业务单号、收支金额、记账时间等信息,供商户进行核对。 + *

+ * 注意: + *

    + *
  • 资金账单中的数据反映的是商户微信支付账户资金变动情况;
  • + *
  • 对账单中涉及金额的字段单位为“元”。
  • + *
+ * + * @param fundFlowBillParams fundFlowBillParams + * @since 1.0.3.RELEASE + */ + public final void downloadFundFlowBill(FundFlowBillParams fundFlowBillParams) { + this.client().withType(WechatPayV3Type.FUNDFLOWBILL, fundFlowBillParams) + .function((wechatPayV3Type, params) -> { + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + LocalDate billDate = params.getBillDate(); + queryParams.add("bill_date", billDate.format(DateTimeFormatter.ISO_DATE)); + + FundFlowAccountType accountType = Optional.ofNullable(params.getAccountType()) + .orElse(FundFlowAccountType.BASIC); + queryParams.add("account_type", accountType.name()); + TarType tarType = params.getTarType(); + if (Objects.nonNull(tarType)) { + queryParams.add("tar_type", tarType.name()); + } + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build().toUri(); + return Get(uri); + }) + .consumer(response -> this.billDownload(Objects.requireNonNull(response.getBody()).get("download_url").asText())) + .request(); + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.java new file mode 100644 index 0000000..930d435 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/ExtensionFormHttpMessageConverter.java @@ -0,0 +1,446 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import org.springframework.http.*; +import org.springframework.http.converter.*; +import org.springframework.http.converter.json.GsonHttpMessageConverter; +import org.springframework.http.converter.json.JsonbHttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.http.converter.smile.MappingJackson2SmileHttpMessageConverter; +import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter; +import org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter; +import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter; +import org.springframework.http.converter.xml.SourceHttpMessageConverter; +import org.springframework.lang.Nullable; +import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; +import org.springframework.util.MultiValueMap; +import org.springframework.util.StreamUtils; + +import java.io.IOException; +import java.io.OutputStream; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * 用于微信支付处理上传的自定义消息转换器. + * + * @author felord.cn + * @see AllEncompassingFormHttpMessageConverter + * @since 1.0.0.RELEASE + */ +final class ExtensionFormHttpMessageConverter extends FormHttpMessageConverter { + /** + * The constant BOUNDARY. + */ + private static final String BOUNDARY = "boundary"; + + + /** + * The constant jaxb2Present. + */ + private static final boolean jaxb2Present; + + /** + * The constant jackson2Present. + */ + private static final boolean jackson2Present; + + /** + * The constant jackson2XmlPresent. + */ + private static final boolean jackson2XmlPresent; + + /** + * The constant jackson2SmilePresent. + */ + private static final boolean jackson2SmilePresent; + + /** + * The constant gsonPresent. + */ + private static final boolean gsonPresent; + + /** + * The constant jsonbPresent. + */ + private static final boolean jsonbPresent; + + /** + * The Part converters. + */ + private final List> partConverters = new ArrayList<>(); + + static { + ClassLoader classLoader = AllEncompassingFormHttpMessageConverter.class.getClassLoader(); + jaxb2Present = ClassUtils.isPresent("javax.xml.bind.Binder", classLoader); + jackson2Present = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader) && + ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader); + jackson2XmlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper", classLoader); + jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader); + gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader); + jsonbPresent = ClassUtils.isPresent("javax.json.bind.Jsonb", classLoader); + } + + /** + * Instantiates a new Upload http message converter. + */ + public ExtensionFormHttpMessageConverter() { + StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(); + stringHttpMessageConverter.setWriteAcceptCharset(false); // see SPR-7316 + + this.partConverters.add(new ByteArrayHttpMessageConverter()); + this.partConverters.add(stringHttpMessageConverter); + this.partConverters.add(new ResourceHttpMessageConverter()); + try { + this.partConverters.add(new SourceHttpMessageConverter<>()); + } catch (Error err) { + // Ignore when no TransformerFactory implementation is available + } + + if (jaxb2Present && !jackson2XmlPresent) { + this.partConverters.add(new Jaxb2RootElementHttpMessageConverter()); + } + + if (jackson2Present) { + this.partConverters.add(new MappingJackson2HttpMessageConverter()); + } else if (gsonPresent) { + this.partConverters.add(new GsonHttpMessageConverter()); + } else if (jsonbPresent) { + this.partConverters.add(new JsonbHttpMessageConverter()); + } + + if (jackson2XmlPresent) { + this.partConverters.add(new MappingJackson2XmlHttpMessageConverter()); + } + + if (jackson2SmilePresent) { + this.partConverters.add(new MappingJackson2SmileHttpMessageConverter()); + } + this.setPartConverters(this.partConverters); + applyDefaultCharset(); + } + + + /** + * Apply the configured charset as a default to registered part converters. + */ + private void applyDefaultCharset() { + for (HttpMessageConverter candidate : this.partConverters) { + if (candidate instanceof AbstractHttpMessageConverter) { + AbstractHttpMessageConverter converter = (AbstractHttpMessageConverter) candidate; + // Only override default charset if the converter operates with a charset to begin with... + if (converter.getDefaultCharset() != null) { + converter.setDefaultCharset(DEFAULT_CHARSET); + } + } + } + } + + @Override + @SuppressWarnings("unchecked") + public void write(MultiValueMap map, @Nullable MediaType contentType, HttpOutputMessage outputMessage) + throws IOException, HttpMessageNotWritableException { + + if (!isMultipart(map, contentType)) { + writeForm((MultiValueMap) map, contentType, outputMessage); + } else { + writeMultipart((MultiValueMap) map, outputMessage); + } + } + + /** + * Is multipart boolean. + * + * @param map the map + * @param contentType the content type + * @return the boolean + */ + private boolean isMultipart(MultiValueMap map, @Nullable MediaType contentType) { + if (contentType != null) { + return MediaType.MULTIPART_FORM_DATA.includes(contentType); + } + for (List values : map.values()) { + for (Object value : values) { + if (value != null && !(value instanceof String)) { + return true; + } + } + } + return false; + } + + /** + * Write form. + * + * @param formData the form data + * @param contentType the content type + * @param outputMessage the output message + * @throws IOException the io exception + */ + private void writeForm(MultiValueMap formData, @Nullable MediaType contentType, + HttpOutputMessage outputMessage) throws IOException { + + contentType = getMediaType(contentType); + outputMessage.getHeaders().setContentType(contentType); + + Charset charset = contentType.getCharset(); + Assert.notNull(charset, "No charset"); // should never occur + + final byte[] bytes = serializeForm(formData, charset).getBytes(charset); + outputMessage.getHeaders().setContentLength(bytes.length); + + if (outputMessage instanceof StreamingHttpOutputMessage) { + StreamingHttpOutputMessage streamingOutputMessage = (StreamingHttpOutputMessage) outputMessage; + streamingOutputMessage.setBody(outputStream -> StreamUtils.copy(bytes, outputStream)); + } else { + StreamUtils.copy(bytes, outputMessage.getBody()); + } + } + + /** + * Gets media type. + * + * @param mediaType the media type + * @return the media type + */ + private MediaType getMediaType(@Nullable MediaType mediaType) { + if (mediaType == null) { + return new MediaType(MediaType.APPLICATION_FORM_URLENCODED, DEFAULT_CHARSET); + } else if (mediaType.getCharset() == null) { + return new MediaType(mediaType, DEFAULT_CHARSET); + } else { + return mediaType; + } + } + + /** + * Write multipart. + * + * @param parts the parts + * @param outputMessage the output message + * @throws IOException the io exception + */ + private void writeMultipart(final MultiValueMap parts, HttpOutputMessage outputMessage) + throws IOException { + + + Map parameters = new LinkedHashMap<>(1); + + parameters.put(BOUNDARY, BOUNDARY); + + MediaType contentType = new MediaType(MediaType.MULTIPART_FORM_DATA, parameters); + HttpHeaders headers = outputMessage.getHeaders(); + headers.setContentType(contentType); + + byte[] boundaryBytes = BOUNDARY.getBytes(); + if (outputMessage instanceof StreamingHttpOutputMessage) { + StreamingHttpOutputMessage streamingOutputMessage = (StreamingHttpOutputMessage) outputMessage; + streamingOutputMessage.setBody(outputStream -> { + writeParts(outputStream, parts, boundaryBytes); + writeEnd(outputStream, boundaryBytes); + }); + } else { + writeParts(outputMessage.getBody(), parts, boundaryBytes); + writeEnd(outputMessage.getBody(), boundaryBytes); + } + } + + /** + * Write parts. + * + * @param os the os + * @param parts the parts + * @param boundary the boundary + * @throws IOException the io exception + */ + private void writeParts(OutputStream os, MultiValueMap parts, byte[] boundary) throws IOException { + for (Map.Entry> entry : parts.entrySet()) { + String name = entry.getKey(); + for (Object part : entry.getValue()) { + if (part != null) { + writeBoundary(os, boundary); + writePart(name, getHttpEntity(part), os); + writeNewLine(os); + } + } + } + } + + /** + * Write part. + * + * @param name the name + * @param partEntity the part entity + * @param os the os + * @throws IOException the io exception + */ + @SuppressWarnings("unchecked") + private void writePart(String name, HttpEntity partEntity, OutputStream os) throws IOException { + Object partBody = partEntity.getBody(); + if (partBody == null) { + throw new IllegalStateException("Empty body for part '" + name + "': " + partEntity); + } + Class partType = partBody.getClass(); + HttpHeaders partHeaders = partEntity.getHeaders(); + MediaType partContentType = partHeaders.getContentType(); + for (HttpMessageConverter messageConverter : this.partConverters) { + if (messageConverter.canWrite(partType, partContentType)) { + + HttpOutputMessage multipartMessage = new MultipartHttpOutputMessage(os, DEFAULT_CHARSET); + multipartMessage.getHeaders().setContentDispositionFormData(name, getFilename(partBody)); + if (!partHeaders.isEmpty()) { + multipartMessage.getHeaders().putAll(partHeaders); + } + ((HttpMessageConverter) messageConverter).write(partBody, partContentType, multipartMessage); + return; + } + } + throw new HttpMessageNotWritableException("Could not write request: no suitable HttpMessageConverter " + + "found for request type [" + partType.getName() + "]"); + } + + + /** + * Write boundary. + * + * @param os the os + * @param boundary the boundary + * @throws IOException the io exception + */ + private void writeBoundary(OutputStream os, byte[] boundary) throws IOException { + os.write('-'); + os.write('-'); + os.write(boundary); + writeNewLine(os); + } + + /** + * Write end. + * + * @param os the os + * @param boundary the boundary + * @throws IOException the io exception + */ + private static void writeEnd(OutputStream os, byte[] boundary) throws IOException { + os.write('-'); + os.write('-'); + os.write(boundary); + os.write('-'); + os.write('-'); + writeNewLine(os); + } + + /** + * Write new line. + * + * @param os the os + * @throws IOException the io exception + */ + private static void writeNewLine(OutputStream os) throws IOException { + os.write('\r'); + os.write('\n'); + } + + /** + * The type Multipart http output message. + */ + private static class MultipartHttpOutputMessage implements HttpOutputMessage { + + /** + * The Output stream. + */ + private final OutputStream outputStream; + + /** + * The Charset. + */ + private final Charset charset; + + /** + * The Headers. + */ + private final HttpHeaders headers = new HttpHeaders(); + + /** + * The Headers written. + */ + private boolean headersWritten = false; + + /** + * Instantiates a new Multipart http output message. + * + * @param outputStream the output stream + * @param charset the charset + */ + public MultipartHttpOutputMessage(OutputStream outputStream, Charset charset) { + this.outputStream = outputStream; + this.charset = charset; + } + + @Override + public HttpHeaders getHeaders() { + return (this.headersWritten ? HttpHeaders.readOnlyHttpHeaders(this.headers) : this.headers); + } + + @Override + public OutputStream getBody() throws IOException { + writeHeaders(); + return this.outputStream; + } + + /** + * Write headers. + * + * @throws IOException the io exception + */ + private void writeHeaders() throws IOException { + if (!this.headersWritten) { + for (Map.Entry> entry : this.headers.entrySet()) { + byte[] headerName = getBytes(entry.getKey()); + for (String headerValueString : entry.getValue()) { + byte[] headerValue = getBytes(headerValueString); + this.outputStream.write(headerName); + this.outputStream.write(':'); + this.outputStream.write(' '); + this.outputStream.write(headerValue); + writeNewLine(this.outputStream); + } + } + writeNewLine(this.outputStream); + this.headersWritten = true; + } + } + + /** + * Get bytes byte [ ]. + * + * @param name the name + * @return the byte [ ] + */ + private byte[] getBytes(String name) { + return name.getBytes(this.charset); + } + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/KeyPairFactory.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/KeyPairFactory.java new file mode 100644 index 0000000..839245f --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/KeyPairFactory.java @@ -0,0 +1,76 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + + +import cn.felord.payment.PayException; +import org.springframework.core.io.ClassPathResource; + +import java.security.KeyPair; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +/** + * 证书工具 + * + * @author felord.cn + * @since 1.0.0.RELEASE + **/ +public class KeyPairFactory { + + private KeyStore store; + + private final Object lock = new Object(); + + /** + * 获取公私钥. + * + * @param keyPath the key path + * @param keyAlias the key alias + * @param keyPass password + * @return the key pair + */ + public WechatMetaBean createPKCS12(String keyPath, String keyAlias, String keyPass) { + ClassPathResource resource = new ClassPathResource(keyPath); + char[] pem = keyPass.toCharArray(); + try { + synchronized (lock) { + if (store == null) { + synchronized (lock) { + store = KeyStore.getInstance("PKCS12"); + store.load(resource.getInputStream(), pem); + } + } + } + X509Certificate certificate = (X509Certificate) store.getCertificate(keyAlias); + certificate.checkValidity(); + String serialNumber = certificate.getSerialNumber().toString(16).toUpperCase(); + PublicKey publicKey = certificate.getPublicKey(); + PrivateKey storeKey = (PrivateKey) store.getKey(keyAlias, pem); + WechatMetaBean wechatMetaBean = new WechatMetaBean(); + wechatMetaBean.setKeyPair(new KeyPair(publicKey, storeKey)); + wechatMetaBean.setSerialNumber(serialNumber); + return wechatMetaBean; + } catch (Exception e) { + throw new PayException("Cannot load keys from store: " + resource, e); + } + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/SignatureProvider.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/SignatureProvider.java new file mode 100644 index 0000000..7611470 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/SignatureProvider.java @@ -0,0 +1,271 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + + +import cn.felord.payment.wechat.enumeration.WeChatServer; +import cn.felord.payment.wechat.enumeration.WechatPayV3Type; +import cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams; +import cn.felord.payment.PayException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.SneakyThrows; +import org.springframework.http.*; +import org.springframework.util.AlternativeJdkIdGenerator; +import org.springframework.util.Base64Utils; +import org.springframework.util.IdGenerator; +import org.springframework.web.client.RestOperations; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponents; +import org.springframework.web.util.UriComponentsBuilder; + +import javax.crypto.Cipher; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.GCMParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.security.*; +import java.security.cert.Certificate; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.util.Arrays; +import java.util.Collections; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; + +/** + * 签名 加签 验签 + *

+ * 我方请求微信服务器时,需要根据我方的API证书对参数进行加签;微信服务器会根据我方签名验签以确定请求来自我方服务器; + *

+ * 然后微信服务器响应我方请求并在响应报文中使用【微信平台证书】加签 我方需要根据规则验签是否响应来自微信支付服务器 + *

+ * 其中【微信平台证书】定期会进行更新,不受我方管控,我方需要适当的时候获取最新的证书列表。 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class SignatureProvider { + + /** + * The constant ID_GENERATOR. + */ + private static final IdGenerator ID_GENERATOR = new AlternativeJdkIdGenerator(); + /** + * The constant SCHEMA. + */ + private static final String SCHEMA = "WECHATPAY2-SHA256-RSA2048 "; + /** + * The constant TOKEN_PATTERN. + */ + public static final String TOKEN_PATTERN = "mchid=\"%s\",nonce_str=\"%s\",timestamp=\"%d\",serial_no=\"%s\",signature=\"%s\""; + /** + * 微信平台证书容器 key = 序列号 value = 证书对象 + */ + private static final Map CERTIFICATE_MAP = new ConcurrentHashMap<>(); + /** + * The Rest operations. + */ + private final RestOperations restOperations = new RestTemplate(); + /** + * The Wechat meta container. + */ + private final WechatMetaContainer wechatMetaContainer; + + /** + * Instantiates a new Signature provider. + * + * @param wechatMetaContainer the wechat meta container + */ + public SignatureProvider(WechatMetaContainer wechatMetaContainer) { + this.wechatMetaContainer = wechatMetaContainer; + wechatMetaContainer.getTenantIds().forEach(this::refreshCertificate); + } + + + /** + * 我方请求前用 SHA256withRSA 加签,使用API证书. + * + * @param tenantId the properties key + * @param method the method + * @param canonicalUrl the canonical url + * @param body the body + * @return the string + */ + @SneakyThrows + public String requestSign(String tenantId, String method, String canonicalUrl, String body) { + Signature signer = Signature.getInstance("SHA256withRSA"); + WechatMetaBean wechatMetaBean = wechatMetaContainer.getWechatMeta(tenantId); + signer.initSign(wechatMetaBean.getKeyPair().getPrivate()); + + long timestamp = System.currentTimeMillis() / 1000; + String nonceStr = ID_GENERATOR.generateId() + .toString() + .replaceAll("-", ""); + final String signatureStr = createSign(method, canonicalUrl, String.valueOf(timestamp), nonceStr, body); + signer.update(signatureStr.getBytes(StandardCharsets.UTF_8)); + String encode = Base64Utils.encodeToString(signer.sign()); + + // 序列号 + String serialNo = wechatMetaBean.getSerialNumber(); + // 生成token + String token = String.format(TOKEN_PATTERN, + wechatMetaBean.getV3().getMchId(), + nonceStr, timestamp, serialNo, encode); + return SCHEMA.concat(token); + } + + /** + * 我方对响应验签,和应答签名做比较,使用微信平台证书. + * + * @param params the params + * @return the boolean + */ + @SneakyThrows + public boolean responseSignVerify(ResponseSignVerifyParams params) { + + String wechatpaySerial = params.getWechatpaySerial(); + if (CERTIFICATE_MAP.isEmpty() || !CERTIFICATE_MAP.containsKey(wechatpaySerial)) { + wechatMetaContainer.getTenantIds().forEach(this::refreshCertificate); + } + Certificate certificate = CERTIFICATE_MAP.get(wechatpaySerial); + + final String signatureStr = createSign(params.getWechatpayTimestamp(), params.getWechatpayNonce(), params.getBody()); + Signature signer = Signature.getInstance("SHA256withRSA"); + signer.initVerify(certificate); + signer.update(signatureStr.getBytes(StandardCharsets.UTF_8)); + + return signer.verify(Base64Utils.decodeFromString(params.getWechatpaySignature())); + } + + + /** + * 当我方服务器不存在平台证书或者证书同当前响应报文中的证书序列号不一致时应当刷新 调用/v3/certificates + * + * @param tenantId tenantId + */ + @SneakyThrows + private synchronized void refreshCertificate(String tenantId) { + String url = WechatPayV3Type.CERT.uri(WeChatServer.CHINA); + + UriComponents uri = UriComponentsBuilder.fromHttpUrl(url).build(); + + String canonicalUrl = uri.getPath(); + String encodedQuery = uri.getQuery(); + + if (encodedQuery != null) { + canonicalUrl += "?" + encodedQuery; + } + // 签名 + HttpMethod httpMethod = WechatPayV3Type.CERT.method(); + String authorization = requestSign(tenantId, httpMethod.name(), canonicalUrl, ""); + + HttpHeaders headers = new HttpHeaders(); + headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.add("Authorization", authorization); + headers.add("User-Agent", "X-Pay-Service"); + RequestEntity requestEntity = new RequestEntity<>(headers, httpMethod, uri.toUri()); + ResponseEntity responseEntity = restOperations.exchange(requestEntity, ObjectNode.class); + ObjectNode bodyObjectNode = responseEntity.getBody(); + + if (Objects.isNull(bodyObjectNode)) { + throw new PayException("cant obtain the response body"); + } + ArrayNode certificates = bodyObjectNode.withArray("data"); + if (certificates.isArray() && certificates.size() > 0) { + CERTIFICATE_MAP.clear(); + final CertificateFactory certificateFactory = CertificateFactory.getInstance("X509"); + certificates.forEach(objectNode -> { + JsonNode encryptCertificate = objectNode.get("encrypt_certificate"); + String associatedData = encryptCertificate.get("associated_data").asText(); + String nonce = encryptCertificate.get("nonce").asText(); + String ciphertext = encryptCertificate.get("ciphertext").asText(); + String publicKey = decryptResponseBody(tenantId, associatedData, nonce, ciphertext); + + ByteArrayInputStream inputStream = new ByteArrayInputStream(publicKey.getBytes(StandardCharsets.UTF_8)); + + try { + Certificate certificate = certificateFactory.generateCertificate(inputStream); + String responseSerialNo = objectNode.get("serial_no").asText(); + CERTIFICATE_MAP.put(responseSerialNo, certificate); + } catch (CertificateException e) { + throw new PayException("An error occurred while generating the wechat v3 certificate, reason : " + e.getMessage()); + } + }); + } + } + + /** + * 解密响应体. + * + * @param tenantId the properties key + * @param associatedData the associated data + * @param nonce the nonce + * @param ciphertext the ciphertext + * @return the string + */ + public String decryptResponseBody(String tenantId, String associatedData, String nonce, String ciphertext) { + try { + Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); + String apiV3Key = wechatMetaContainer.getWechatMeta(tenantId).getV3().getAppV3Secret(); + SecretKeySpec key = new SecretKeySpec(apiV3Key.getBytes(StandardCharsets.UTF_8), "AES"); + GCMParameterSpec spec = new GCMParameterSpec(128, nonce.getBytes(StandardCharsets.UTF_8)); + + cipher.init(Cipher.DECRYPT_MODE, key, spec); + cipher.updateAAD(associatedData.getBytes(StandardCharsets.UTF_8)); + + byte[] bytes; + try { + bytes = cipher.doFinal(Base64Utils.decodeFromString(ciphertext)); + } catch (GeneralSecurityException e) { + throw new PayException(e); + } + return new String(bytes, StandardCharsets.UTF_8); + } catch (NoSuchAlgorithmException | NoSuchPaddingException | + InvalidKeyException | InvalidAlgorithmParameterException e) { + throw new PayException(e); + } + } + + /** + * Wechat meta container. + * + * @return the wechat meta container + */ + public WechatMetaContainer wechatMetaContainer() { + return wechatMetaContainer; + } + + /** + * 请求时设置签名 组件 + * + * @param components the components + * @return string string + */ + private static String createSign(String... components) { + return Arrays.stream(components) + .collect(Collectors.joining("\n", "", "\n")); + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatApiProvider.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatApiProvider.java new file mode 100644 index 0000000..b245a96 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatApiProvider.java @@ -0,0 +1,110 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +/** + * 微信支付工具. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class WechatApiProvider { + /** + * The Wechat pay client. + */ + private final WechatPayClient wechatPayClient; + + /** + * Instantiates a new Wechat api provider. + * + * @param wechatPayClient the wechat pay client + */ + public WechatApiProvider(WechatPayClient wechatPayClient) { + this.wechatPayClient = wechatPayClient; + } + + /** + * 代金券. + * + * @param tenantId the tenant id + * @return the wechat marketing favor api + * @since 1.0.0.RELEASE + */ + public WechatMarketingFavorApi favorApi(String tenantId) { + return new WechatMarketingFavorApi(this.wechatPayClient, tenantId); + } + + /** + * 普通支付-直连模式. + * + * @param tenantId the tenant id + * @return the wechat pay api + * @since 1.0.0.RELEASE + */ + public WechatDirectPayApi directPayApi(String tenantId) { + return new WechatDirectPayApi(wechatPayClient, tenantId); + } + + /** + * 合单支付. + * + * @param tenantId the tenant id + * @return the wechat combine pay api + * @since 1.0.1.RELEASE + */ + public WechatCombinePayApi combinePayApi(String tenantId) { + return new WechatCombinePayApi(wechatPayClient, tenantId); + } + + /** + * 微信支付分. + * + * @param tenantId the tenant id + * @return the wechat pay score api + * @since 1.0.2.RELEASE + */ + public WechatPayScoreApi payScoreApi(String tenantId) { + return new WechatPayScoreApi(wechatPayClient, tenantId); + } + + /** + * 微信支付先享卡. + * + * @param tenantId the tenant id + * @return the wechat discount card api + * @since 1.0.2.RELEASE + */ + public WechatDiscountCardApi discountCardApi(String tenantId) { + return new WechatDiscountCardApi(wechatPayClient, tenantId); + } + + /** + * 回调. + *

+ * 需要处理白名单、幂等性问题。 + * + * @param tenantId the tenant id + * @return the wechat pay callback + * @since 1.0.0.RELEASE + */ + public WechatPayCallback callback(String tenantId) { + return new WechatPayCallback(wechatPayClient.signatureProvider(), tenantId); + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatCombinePayApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatCombinePayApi.java new file mode 100644 index 0000000..9c62786 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatCombinePayApi.java @@ -0,0 +1,214 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import cn.felord.payment.wechat.WechatPayProperties; +import cn.felord.payment.wechat.enumeration.WeChatServer; +import cn.felord.payment.wechat.enumeration.WechatPayV3Type; +import cn.felord.payment.wechat.v3.model.combine.CombineCloseParams; +import cn.felord.payment.wechat.v3.model.combine.CombineH5PayParams; +import cn.felord.payment.wechat.v3.model.combine.CombinePayParams; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.springframework.http.RequestEntity; +import org.springframework.web.util.UriComponentsBuilder; + +import java.net.URI; + +/** + * 微信合单支付. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class WechatCombinePayApi extends AbstractApi { + /** + * Instantiates a new Abstract api. + * + * @param wechatPayClient the wechat pay client + * @param tenantId the tenant id + */ + public WechatCombinePayApi(WechatPayClient wechatPayClient, String tenantId) { + super(wechatPayClient, tenantId); + } + + /** + * 合单下单-APP支付API + *

+ * 使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。目前最多一次可支持50笔订单进行合单支付。 + *

+ * 注意: + * • 订单如果需要进行抽佣等,需要在合单中指定需要进行分账(profit_sharing为true);指定后,交易资金进入二级商户账户,处于冻结状态,可在后续使用分账接口进行分账,利用分账完结进行资金解冻,实现抽佣和对二级商户的账期。 + * + * @param combinePayParams the combine pay params + * @return the wechat response entity + */ + public WechatResponseEntity appPay(CombinePayParams combinePayParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.COMBINE_APP, combinePayParams) + .function(this::combinePayFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + + /** + * 合单下单-JSAPI支付/小程序支付API + *

+ * 使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。目前最多一次可支持50笔订单进行合单支付。 + *

+ * 注意: + * • 订单如果需要进行抽佣等,需要在合单中指定需要进行分账(profit_sharing为true);指定后,交易资金进入二级商户账户,处于冻结状态,可在后续使用分账接口进行分账,利用分账完结进行资金解冻,实现抽佣和对二级商户的账期。 + * + * @param combinePayParams the combine pay params + * @return wechat response entity + */ + public WechatResponseEntity jsPay(CombinePayParams combinePayParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.COMBINE_JSAPI, combinePayParams) + .function(this::combinePayFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * Combine pay function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity combinePayFunction(WechatPayV3Type type, CombinePayParams params) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + params.setCombineAppid(v3.getAppId()); + params.setCombineMchid(v3.getMchId()); + + String notifyUrl = v3.getDomain().concat(params.getNotifyUrl()); + params.setNotifyUrl(notifyUrl); + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + return Post(uri, params); + } + + /** + * 合单下单-H5支付API. + *

+ * 使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。目前最多一次可支持50笔订单进行合单支付。 + *

+ * 注意: + * • 订单如果需要进行抽佣等,需要在合单中指定需要进行分账(profit_sharing为true);指定后,交易资金进入二级商户账户,处于冻结状态,可在后续使用分账接口进行分账,利用分账完结进行资金解冻,实现抽佣和对二级商户的账期。 + * + * @param combineH5PayParams the combine h 5 pay params + * @return the wechat response entity + */ + public WechatResponseEntity h5Pay(CombineH5PayParams combineH5PayParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.COMBINE_MWEB, combineH5PayParams) + .function(this::combinePayFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * Combine pay function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity combinePayFunction(WechatPayV3Type type, CombineH5PayParams params) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + params.setCombineAppid(v3.getAppId()); + params.setCombineMchid(v3.getMchId()); + + String notifyUrl = v3.getDomain().concat(params.getNotifyUrl()); + params.setNotifyUrl(notifyUrl); + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + return Post(uri, params); + } + + /** + * 合单下单-Native支付API. + *

+ * 使用合单支付接口,用户只输入一次密码,即可完成多个订单的支付。目前最多一次可支持50笔订单进行合单支付。 + *

+ * 注意: + * • 订单如果需要进行抽佣等,需要在合单中指定需要进行分账(profit_sharing为true);指定后,交易资金进入二级商户账户,处于冻结状态,可在后续使用分账接口进行分账,利用分账完结进行资金解冻,实现抽佣和对二级商户的账期。 + * + * @param combinePayParams the combine pay params + * @return the wechat response entity + */ + public WechatResponseEntity nativePay(CombinePayParams combinePayParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.COMBINE_NATIVE, combinePayParams) + .function(this::combinePayFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 合单查询订单API. + * + * @param combineOutTradeNo the combine out trade no + * @return the wechat response entity + */ + public WechatResponseEntity queryTransactionByOutTradeNo(String combineOutTradeNo) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.COMBINE_TRANSACTION_OUT_TRADE_NO, combineOutTradeNo) + .function((wechatPayV3Type, outTradeNo) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(outTradeNo) + .toUri(); + return Get(uri); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 合单关闭订单API. + *

+ * 合单支付订单只能使用此合单关单api完成关单。 + *

+ * 微信服务器返回 204。 + * + * @param combineCloseParams the combine close params + * @return the wechat response entity + */ + public WechatResponseEntity close(CombineCloseParams combineCloseParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.COMBINE_CLOSE, combineCloseParams) + .function((wechatPayV3Type, params) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build().toUri(); + return Post(uri, params); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDirectPayApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDirectPayApi.java new file mode 100644 index 0000000..101264c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDirectPayApi.java @@ -0,0 +1,197 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import cn.felord.payment.wechat.enumeration.WeChatServer; +import cn.felord.payment.wechat.WechatPayProperties; +import cn.felord.payment.wechat.enumeration.WechatPayV3Type; +import cn.felord.payment.wechat.v3.model.PayParams; +import cn.felord.payment.wechat.v3.model.TransactionQueryParams; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.springframework.http.RequestEntity; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.util.UriComponentsBuilder; + +import java.net.URI; + +/** + * 普通支付-直连模式. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class WechatDirectPayApi extends AbstractApi { + + /** + * Instantiates a new Wechat pay api. + * + * @param wechatPayClient the wechat pay client + * @param tenantId the tenant id + */ + public WechatDirectPayApi(WechatPayClient wechatPayClient, String tenantId) { + super(wechatPayClient, tenantId); + } + + /** + * APP下单API + * + * @param payParams the pay params + * @return the wechat response entity + */ + public WechatResponseEntity appPay(PayParams payParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.APP, payParams) + .function(this::payFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * JSAPI/小程序下单API + * + * @param payParams the pay params + * @return wechat response entity + */ + public WechatResponseEntity jsPay(PayParams payParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.JSAPI, payParams) + .function(this::payFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * Native下单API + * + * @param payParams the pay params + * @return wechat response entity + */ + public WechatResponseEntity nativePay(PayParams payParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.NATIVE, payParams) + .function(this::payFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * H5下单API + * + * @param payParams the pay params + * @return wechat response entity + */ + public WechatResponseEntity h5Pay(PayParams payParams) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MWEB, payParams) + .function(this::payFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + private RequestEntity payFunction(WechatPayV3Type type, PayParams payParams) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + payParams.setAppid(v3.getAppId()); + payParams.setMchid(v3.getMchId()); + String notifyUrl = v3.getDomain().concat(payParams.getNotifyUrl()); + payParams.setNotifyUrl(notifyUrl); + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + return Post(uri, payParams); + } + + /** + * 微信支付订单号查询API + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryTransactionById(TransactionQueryParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.TRANSACTION_TRANSACTION_ID, params) + .function(this::queryTransactionFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 商户订单号查询API + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryTransactionByOutTradeNo(TransactionQueryParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.TRANSACTION_OUT_TRADE_NO, params) + .function(this::queryTransactionFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + private RequestEntity queryTransactionFunction(WechatPayV3Type type, TransactionQueryParams params) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("mchid", v3.getMchId()); + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .expand(params.getTransactionIdOrOutTradeNo()) + .toUri(); + return Get(uri); + } + + /** + * 关单API + * + * @param outTradeNo the out trade no + * @return the wechat response entity + */ + public WechatResponseEntity close(String outTradeNo) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.CLOSE, outTradeNo) + .function(this::closeByOutTradeNoFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + private RequestEntity closeByOutTradeNoFunction(WechatPayV3Type type, String outTradeNo) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("mchid", v3.getMchId()); + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .expand(outTradeNo) + .toUri(); + return Post(uri, queryParams); + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDiscountCardApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDiscountCardApi.java new file mode 100644 index 0000000..96a4a8d --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDiscountCardApi.java @@ -0,0 +1,120 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import cn.felord.payment.wechat.WechatPayProperties; +import cn.felord.payment.wechat.enumeration.WeChatServer; +import cn.felord.payment.wechat.enumeration.WechatPayV3Type; +import cn.felord.payment.wechat.v3.model.discountcard.DiscountCardPreRequestParams; +import cn.felord.payment.wechat.v3.model.discountcard.UserRecordsParams; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.springframework.web.util.UriComponentsBuilder; + +import java.net.URI; + +/** + * 微信支付先享卡. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +public class WechatDiscountCardApi extends AbstractApi { + /** + * Instantiates a new Abstract api. + * + * @param wechatPayClient the wechat pay client + * @param tenantId the tenant id + */ + public WechatDiscountCardApi(WechatPayClient wechatPayClient, String tenantId) { + super(wechatPayClient, tenantId); + } + + /** + * 预受理领卡请求API + *

+ * 商户在引导用户跳转先享卡领卡前,需要请求先享卡预受理领卡请求接口,再根据返回数据引导用户跳转领卡。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity preRequest(DiscountCardPreRequestParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.DISCOUNT_CARD_PRE_REQUEST, params) + .function((wechatPayV3Type, requestParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + requestParams.setAppid(v3.getAppId()); + requestParams.setNotifyUrl(v3.getDomain().concat(requestParams.getNotifyUrl())); + return Post(uri, requestParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 增加用户记录API + *

+ * 当用户在商户侧消费时,用户完成了微信先享卡的目标或者获取使用优惠时,商户需要把这个信息同步给微信先享卡平台,用于在微信先享卡小程序展示及先享卡到期后的用户结算。 + * + * @param params the params + * @return 返回http状态码 204 处理成功,应答无内容 + */ + public WechatResponseEntity addUserRecords(UserRecordsParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.DISCOUNT_CARD_ADD_USER_RECORDS, params) + .function((wechatPayV3Type, recordsParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(recordsParams.getOutCardCode()) + .toUri(); + recordsParams.setOutCardCode(null); + return Post(uri, recordsParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 查询先享卡订单API + *

+ * 商户可以通过商户领卡号查询指定的先享卡,可用于对账或者界面展示。 + * + * @param outCardCode 商户领卡号 + * @return the wechat response entity + */ + public WechatResponseEntity addUserRecords(String outCardCode) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.DISCOUNT_CARD_INFO, outCardCode) + .function((wechatPayV3Type, cardCode) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(cardCode) + .toUri(); + return Get(uri); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMarketingFavorApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMarketingFavorApi.java new file mode 100644 index 0000000..2209320 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMarketingFavorApi.java @@ -0,0 +1,637 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3; + +import cn.felord.payment.wechat.WechatPayProperties; +import cn.felord.payment.wechat.enumeration.StockStatus; +import cn.felord.payment.wechat.enumeration.WeChatServer; +import cn.felord.payment.wechat.enumeration.WechatPayV3Type; +import cn.felord.payment.wechat.v3.model.*; +import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.SneakyThrows; +import org.bouncycastle.jcajce.provider.digest.SHA256; +import org.bouncycastle.util.encoders.Hex; +import org.springframework.http.MediaType; +import org.springframework.http.RequestEntity; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.util.UriComponentsBuilder; + +import java.net.URI; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Objects; +import java.util.function.Consumer; + +/** + * 微信支付营销代金券API + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class WechatMarketingFavorApi extends AbstractApi { + + + /** + * Instantiates a new Wechat marketing favor api. + * + * @param wechatPayClient the wechat pay client + * @param tenantId the tenant id + */ + public WechatMarketingFavorApi(WechatPayClient wechatPayClient, String tenantId) { + super(wechatPayClient, tenantId); + } + + + /** + * 创建代金券批次API + *

+ * 通过调用此接口可创建代金券批次,包括 预充值免充值 类型。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity createStock(StocksCreateParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_COUPON_STOCKS, params) + .function(this::createStocksFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * Create stocks function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity createStocksFunction(WechatPayV3Type type, StocksCreateParams params) { + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + String mchId = v3.getMchId(); + params.setBelongMerchant(mchId); + return Post(uri, params); + } + + /** + * 激活代金券批次API + *

+ * 制券成功后,通过调用此接口激活批次,如果是预充值代金券,激活时会从商户账户余额中锁定本批次的营销资金。 + * + * @param stockId the stock id + * @return the wechat response entity + */ + public WechatResponseEntity startStock(String stockId) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_START, stockId) + .function(this::startAndRestartAndPauseStockFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + + /** + * 发放代金券API + *

+ * 商户侧开发时建议增加发放流水记录。 + *

+ * 微信支付文档所要求的微信公众号服务号不是必须的,只要你有一个绑定了微信支付商户平台和开放平台的appid即可。 + *

+ * 流程为: + * 1. appid 请求授权微信登录。 + * 2. 登录成功后,开发者在商户侧保存用户 对应此appid的openid。 + * 3. 通过 appid - openid 进行发券。 + *

+ * 商户平台/API完成制券后,可使用发放代金券接口发券。通过调用此接口可发放指定批次给指定用户,发券场景可以是小程序、H5、APP等。 + *

+ * 注意: + * • 商户可在H5活动页面、商户小程序、商户APP等自有场景内调用该接口完成发券,商户默认只允许发放本商户号(调用发券接口的商户号)创建的代金券,如需发放其他商户商户创建的代金券,请参考常见问题Q1。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity sendStock(StocksSendParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_USERS_COUPONS, params) + .function(this::sendStocksFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + + /** + * Send stocks function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity sendStocksFunction(WechatPayV3Type type, StocksSendParams params) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + params.setAppid(v3.getAppId()); + params.setStockCreatorMchid(v3.getMchId()); + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .expand(params.getOpenid()) + .toUri(); + params.setOpenid(null); + return Post(uri, params); + } + + /** + * 暂停代金券批次API + *

+ * 通过此接口可暂停指定代金券批次。暂停后,该代金券批次暂停发放,用户无法通过任何渠道再领取该批次的券。 + * + * @param stockId the stock id + * @return the wechat response entity + */ + public WechatResponseEntity pauseStock(String stockId) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_PAUSE, stockId) + .function(this::startAndRestartAndPauseStockFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 重启代金券批次API + *

+ * 通过此接口可重启指定代金券批次。重启后,该代金券批次可以再次发放。 + * + * @param stockId the stock id + * @return the wechat response entity + */ + public WechatResponseEntity restartStock(String stockId) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_RESTART, stockId) + .function(this::startAndRestartAndPauseStockFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * Start and restart and pause stock function request entity. + * + * @param type the type + * @param stockId the stock id + * @return the request entity + */ + private RequestEntity startAndRestartAndPauseStockFunction(WechatPayV3Type type, String stockId) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + String mchId = v3.getMchId(); + Map body = new HashMap<>(1); + body.put("stock_creator_mchid", mchId); + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .expand(stockId) + .toUri(); + return Post(uri, body); + } + + /** + * 条件查询批次列表API + *

+ * 通过此接口可查询多个批次的信息,包括批次的配置信息以及批次概况数据。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryStocksByMch(StocksQueryParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS, params) + .function(this::queryStocksByMchFunction) + .consumer(wechatResponseEntity::convert) + .request(); + + return wechatResponseEntity; + } + + /** + * Query stocks function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity queryStocksByMchFunction(WechatPayV3Type type, StocksQueryParams params) { + + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("offset", String.valueOf(params.getOffset())); + queryParams.add("limit", String.valueOf(params.getLimit())); + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + queryParams.add("stock_creator_mchid", v3.getMchId()); + OffsetDateTime createStartTime = params.getCreateStartTime(); + if (Objects.nonNull(createStartTime)) { + //rfc 3339 YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE + queryParams.add("create_start_time", createStartTime + .format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)); + } + OffsetDateTime createEndTime = params.getCreateEndTime(); + if (Objects.nonNull(createEndTime)) { + //rfc 3339 YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE + queryParams.add("create_end_time", createEndTime + .format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)); + } + StockStatus status = params.getStatus(); + if (Objects.nonNull(status)) { + queryParams.add("status", status.value()); + } + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build().toUri(); + return Get(uri); + } + + + /** + * 查询批次详情API + *

+ * 通过此接口可查询批次信息,包括批次的配置信息以及批次概况数据。 + * + * @param stockId the stock id + * @return the wechat response entity + */ + public WechatResponseEntity queryStockDetail(String stockId) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_DETAIL, stockId) + .function(this::stockDetailFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + + /** + * Stock detail function request entity. + * + * @param type the type + * @param stockId the stock id + * @return the request entity + */ + private RequestEntity stockDetailFunction(WechatPayV3Type type, String stockId) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("stock_creator_mchid", v3.getMchId()); + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .expand(stockId) + .toUri(); + return Get(uri); + + } + + /** + * 查询代金券详情API + *

+ * 通过此接口可查询代金券信息,包括代金券的基础信息、状态。如代金券已核销,会包括代金券核销的订单信息(订单号、单品信息等)。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryCouponDetails(CouponDetailsQueryParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_USERS_COUPONS_DETAIL, params) + .function(this::couponDetailFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + + /** + * Coupon detail function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity couponDetailFunction(WechatPayV3Type type, CouponDetailsQueryParams params) { + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("appid", v3.getAppId()); + + MultiValueMap pathParams = new LinkedMultiValueMap<>(); + pathParams.add("openid", params.getOpenId()); + pathParams.add("coupon_id", params.getCouponId()); + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .expand(pathParams) + .toUri(); + return Get(uri); + + } + + /** + * 查询代金券可用商户API + *

+ * 通过调用此接口可查询批次的可用商户号,判断券是否在某商户号可用,来决定是否展示。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryMerchantsByStockId(MchQueryParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_MERCHANTS, params) + .function(this::queryMerchantsByStockIdFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * Query stocks function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity queryMerchantsByStockIdFunction(WechatPayV3Type type, MchQueryParams params) { + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("offset", String.valueOf(params.getOffset())); + queryParams.add("limit", String.valueOf(params.getLimit())); + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + queryParams.add("stock_creator_mchid", v3.getMchId()); + String stockId = params.getStockId(); + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .expand(stockId) + .toUri(); + return Get(uri); + } + + /** + * 查询代金券可用单品API + *

+ * 通过此接口可查询批次的可用商品编码,判断券是否可用于某些商品,来决定是否展示。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryStockItems(MchQueryParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_ITEMS, params) + .function(this::queryMerchantsByStockIdFunction) + .consumer(wechatResponseEntity::convert) + .request(); + + return wechatResponseEntity; + } + + /** + * 根据商户号查用户的券API + *

+ * 可通过该接口查询用户在某商户号可用的全部券,可用于商户的小程序/H5中,用户"我的代金券"或"提交订单页"展示优惠信息。无法查询到微信支付立减金。本接口查不到用户的微信支付立减金(又称“全平台通用券”),即在所有商户都可以使用的券,例如:摇摇乐红包;当按可用商户号查询时,无法查询用户已经核销的券 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryUserCouponsByMchId(UserCouponsQueryParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_USERS_COUPONS, params) + .function(this::queryUserCouponsFunction) + .consumer(wechatResponseEntity::convert) + .request(); + + return wechatResponseEntity; + } + + /** + * Query user coupons function request entity. + * + * @param type the type + * @param params the params + * @return the request entity + */ + private RequestEntity queryUserCouponsFunction(WechatPayV3Type type, UserCouponsQueryParams params) { + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("appid", v3.getAppId()); + queryParams.add("creator_mchid", v3.getMchId()); + String senderMchId = params.getSenderMchId(); + if (StringUtils.hasText(senderMchId)) { + queryParams.add("sender_mchid", senderMchId); + } + String availableMchId = params.getAvailableMchId(); + if (StringUtils.hasText(availableMchId)) { + queryParams.add("available_mchid", availableMchId); + } else { + String offset = Objects.isNull(params.getOffset()) ? null : params.getOffset().toString(); + queryParams.add("offset", offset); + String limit = Objects.isNull(params.getLimit()) ? null : params.getLimit().toString(); + queryParams.add("limit", limit); + String status = Objects.nonNull(params.getStatus()) ? params.getStatus().name() : null; + queryParams.add("status", status); + String stockId = params.getStockId(); + if (StringUtils.hasText(stockId)) { + queryParams.add("stock_id", stockId); + } + } + + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .expand(params.getOpenId()) + .toUri(); + return Get(uri); + + } + + /** + * 下载批次核销明细API + *

+ * 数据结果包含在响应体的 csv 字段中 + *

+ * 可获取到某批次的核销明细数据,包括订单号、单品信息、银行流水号等,用于对账/数据分析。 + * + * @param stockId the stock id + * @return the wechat response entity + * @see AbstractApi#billDownload(String) 对账单下载api + */ + public WechatResponseEntity downloadStockUseFlow(String stockId) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_USE_FLOW, stockId) + .function(this::downloadFlowFunction) + .consumer(wechatResponseEntity::convert) + .request(); + String csv = this.billDownload(wechatResponseEntity.getBody().get("url").asText()); + wechatResponseEntity.getBody().put("csv", csv); + return wechatResponseEntity; + } + + /** + * 下载批次退款明细API + *

+ * 数据结果包含在响应体的 csv 字段中 + *

+ * 可获取到某批次的退款明细数据,包括订单号、单品信息、银行流水号等,用于对账/数据分析。 + * + * @param stockId the stock id + * @return the wechat response entity + * @see AbstractApi#billDownload(String) 对账单下载api + */ + public WechatResponseEntity downloadStockRefundFlow(String stockId) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_REFUND_FLOW, stockId) + .function(this::downloadFlowFunction) + .consumer(wechatResponseEntity::convert) + .request(); + String csv = this.billDownload(wechatResponseEntity.getBody().get("url").asText()); + wechatResponseEntity.getBody().put("csv", csv); + return wechatResponseEntity; + } + + /** + * Download flow function request entity. + * + * @param type the type + * @param stockId the stock id + * @return the request entity + */ + private RequestEntity downloadFlowFunction(WechatPayV3Type type, String stockId) { + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .expand(stockId) + .toUri(); + return Get(uri); + } + + /** + * 营销图片上传API + *

+ * 媒体图片只支持JPG、BMP、PNG格式,文件大小不能超过2M。 + *

+ * 通过本接口上传图片后可获得图片url地址。图片url可在微信支付营销相关的API使用,包括商家券、代金券、支付有礼等。 + * + * @param file the file + * @return the wechat response entity + */ + public WechatResponseEntity marketingImageUpload(MultipartFile file) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_IMAGE_UPLOAD, file) + .function(this::marketingImageUploadFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + + /** + * Marketing image upload function request entity. + * + * @param type the type + * @param file the file + * @return the request entity + */ + @SneakyThrows + private RequestEntity marketingImageUploadFunction(WechatPayV3Type type, MultipartFile file) { + + Map meta = new LinkedHashMap<>(2); + + String originalFilename = file.getOriginalFilename(); + String filename = StringUtils.hasText(originalFilename) ? originalFilename : file.getName(); + meta.put("filename", filename); + + byte[] digest = SHA256.Digest.getInstance("SHA-256").digest(file.getBytes()); + meta.put("sha256", Hex.toHexString(digest)); + MultiValueMap body = new LinkedMultiValueMap<>(); + body.add("meta", meta); + body.add("file", file.getResource()); + // 签名 + String metaStr = this.getMapper().writeValueAsString(meta); + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + return RequestEntity.post(uri) + .header("Content-Type", MediaType.MULTIPART_FORM_DATA_VALUE) + .header("Meta-Info", metaStr) + .header("Pay-TenantId", tenantId()) + .body(body); + } + + /** + * 代金券核销回调通知API。 + *

+ * 设置核销回调通知的{@code notifyUrl},{@code notifyUrl}需要设置应用白名单。开发者应该对代金券的核销结果进行流水记录。 + * + * @param notifyUrl the notify url + * @return the wechat response entity + * @see WechatPayCallback#couponCallback(ResponseSignVerifyParams, Consumer) 核销回调 + */ + public WechatResponseEntity setMarketingFavorCallback(String notifyUrl) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.MARKETING_FAVOR_CALLBACKS, notifyUrl) + .function(this::setMarketingFavorCallbackFunction) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * Sets marketing favor callback function. + * + * @param type the type + * @param notifyUrl the notify url + * @return the marketing favor callback function + */ + private RequestEntity setMarketingFavorCallbackFunction(WechatPayV3Type type, String notifyUrl) { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + Map body = new HashMap<>(3); + body.put("mchid", v3.getMchId()); + body.put("notify_url", notifyUrl); + body.put("switch", true); + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + return Post(uri, body); + } +} + + + diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaBean.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaBean.java new file mode 100644 index 0000000..11dad68 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaBean.java @@ -0,0 +1,52 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + + +import cn.felord.payment.wechat.WechatPayProperties; +import lombok.Data; + +import java.security.KeyPair; + +/** + * 微信支付元数据Bean. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class WechatMetaBean { + /** + * The Key pair. + */ + private KeyPair keyPair; + /** + * The Serial number. + */ + private String serialNumber; + /** + * The Tenant id. + */ + private String tenantId; + /** + * The V3. + */ + private WechatPayProperties.V3 v3; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java new file mode 100644 index 0000000..22f6b11 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatMetaContainer.java @@ -0,0 +1,76 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + + +import java.util.*; + +/** + * 配置容器 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class WechatMetaContainer { + private final Map wechatMetaBeanMap = new HashMap<>(); + private final Set tenantIds = new HashSet<>(); + + + /** + * Add wechat meta boolean. + * + * @param tenantId the tenantId + * @param wechatMetaBean the wechat meta bean + * @return the boolean + */ + public WechatMetaBean addWechatMeta(String tenantId, WechatMetaBean wechatMetaBean) { + tenantIds.add(tenantId); + return this.wechatMetaBeanMap.put(tenantId, wechatMetaBean); + } + + /** + * Remove wechat meta wechat meta bean. + * + * @param tenantId the tenantId + * @return the wechat meta bean + */ + public WechatMetaBean removeWechatMeta(String tenantId) { + tenantIds.remove(tenantId); + return this.wechatMetaBeanMap.remove(tenantId); + } + + /** + * Gets wechat meta. + * + * @param tenantId the tenantId + * @return the wechat meta + */ + public WechatMetaBean getWechatMeta(String tenantId) { + return Objects.requireNonNull(this.wechatMetaBeanMap.get(tenantId)); + } + + /** + * Gets properties keys. + * + * @return the properties keys + */ + public Set getTenantIds() { + return tenantIds; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayCallback.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayCallback.java new file mode 100644 index 0000000..9a0ae13 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayCallback.java @@ -0,0 +1,381 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3; + +import cn.felord.payment.PayException; +import cn.felord.payment.wechat.v3.model.CallbackParams; +import cn.felord.payment.wechat.v3.model.CouponConsumeData; +import cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams; +import cn.felord.payment.wechat.v3.model.TransactionConsumeData; +import cn.felord.payment.wechat.v3.model.combine.CombineTransactionConsumeData; +import cn.felord.payment.wechat.v3.model.discountcard.*; +import cn.felord.payment.wechat.v3.model.payscore.PayScoreConsumer; +import cn.felord.payment.wechat.v3.model.payscore.PayScoreUserConfirmConsumeData; +import cn.felord.payment.wechat.v3.model.payscore.PayScoreUserPaidConsumeData; +import cn.felord.payment.wechat.v3.model.payscore.PayScoreUserPermissionConsumeData; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.Assert; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.function.Consumer; + +/** + * 微信支付回调工具. + *

+ * 注意:开发者应该保证回调调用的幂等性 + *

+ * 支付通知http应答码为200或204才会当作正常接收,当回调处理异常时,应答的HTTP状态码应为500,或者4xx。 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Slf4j +public class WechatPayCallback { + /** + * The constant MAPPER. + */ + private static final ObjectMapper MAPPER = new ObjectMapper(); + /** + * The Signature provider. + */ + private final SignatureProvider signatureProvider; + /** + * The Tenant id. + */ + private final String tenantId; + + static { + MAPPER.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); + MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL); + } + + /** + * Instantiates a new Wechat pay callback. + * + * @param signatureProvider the signature provider + * @param tenantId the tenant id + */ + public WechatPayCallback(SignatureProvider signatureProvider, String tenantId) { + this.signatureProvider = signatureProvider; + Assert.hasText(tenantId, "tenantId is required"); + this.tenantId = tenantId; + } + + + /** + * 微信支付代金券核销回调. + * + * @param params the params + * @param consumeDataConsumer the consume data consumer + * @return the map + * @since 1.0.0.RELEASE + */ + @SneakyThrows + public Map couponCallback(ResponseSignVerifyParams params, Consumer consumeDataConsumer) { + String data = this.callback(params, EventType.COUPON); + CouponConsumeData consumeData = MAPPER.readValue(data, CouponConsumeData.class); + consumeDataConsumer.accept(consumeData); + Map responseBody = new HashMap<>(2); + responseBody.put("code", 200); + responseBody.put("message", "SUCCESS"); + return responseBody; + + } + + /** + * 微信支付成功回调. + *

+ * 无需开发者判断,只有扣款成功微信才会回调此接口 + * + * @param params the params + * @param consumeDataConsumer the consume data consumer + * @return the map + * @since 1.0.0.RELEASE + */ + @SneakyThrows + public Map transactionCallback(ResponseSignVerifyParams params, Consumer consumeDataConsumer) { + String data = this.callback(params, EventType.TRANSACTION); + TransactionConsumeData consumeData = MAPPER.readValue(data, TransactionConsumeData.class); + consumeDataConsumer.accept(consumeData); + return Collections.singletonMap("code", "SUCCESS"); + + } + + /** + * 微信合单支付成功回调. + *

+ * 无需开发者判断,只有扣款成功微信才会回调此接口 + * + * @param params the params + * @param consumeDataConsumer the consume data consumer + * @return the map + * @since 1.0.0.RELEASE + */ + @SneakyThrows + public Map combineTransactionCallback(ResponseSignVerifyParams params, Consumer consumeDataConsumer) { + String data = this.callback(params, EventType.TRANSACTION); + CombineTransactionConsumeData consumeData = MAPPER.readValue(data, CombineTransactionConsumeData.class); + consumeDataConsumer.accept(consumeData); + return Collections.singletonMap("code", "SUCCESS"); + + } + + /** + * 微信支付分确认订单、支付成功回调通知. + *

+ * 该链接是通过商户 创建支付分订单 提交notify_url参数,必须为https协议。如果链接无法访问,商户将无法接收到微信通知。 通知url必须为直接可访问的url,不能携带参数。示例: “https://pay.weixin.qq.com/wxpay/pay.action” + * + * @param params the params + * @param payScoreConsumer the pay score consumer + * @return the map + * @since 1.0.2.RELEASE + */ + @SneakyThrows + public Map payscoreUserOrderCallback(ResponseSignVerifyParams params, PayScoreConsumer payScoreConsumer) { + CallbackParams callbackParams = resolve(params); + String eventType = callbackParams.getEventType(); + + if (Objects.equals(eventType, EventType.PAYSCORE_USER_CONFIRM.event)) { + String data = this.decrypt(callbackParams); + PayScoreUserConfirmConsumeData confirmConsumeData = MAPPER.readValue(data, PayScoreUserConfirmConsumeData.class); + payScoreConsumer.getConfirmConsumeDataConsumer().accept(confirmConsumeData); + } else if (Objects.equals(eventType, EventType.PAYSCORE_USER_PAID.event)) { + String data = this.decrypt(callbackParams); + PayScoreUserPaidConsumeData paidConsumeData = MAPPER.readValue(data, PayScoreUserPaidConsumeData.class); + payScoreConsumer.getPaidConsumeDataConsumer().accept(paidConsumeData); + } else { + log.error("wechat pay event type is not matched, callbackParams {}", callbackParams); + throw new PayException(" wechat pay event type is not matched"); + } + + return Collections.singletonMap("code", "SUCCESS"); + } + + /** + * 授权/解除授权服务回调通知API. + *

+ * 微信支付分通过授权/解除授权服务通知接口将用户过授权/解除授权服务消息通知给商户 + *

+ * 普通授权模式是通过[商户入驻配置申请表]提交service_notify_url设置,预授权模式是通过[商户预授权]提交的notify_url设置,必须为https协议。如果链接无法访问,商户将无法接收到微信通知。 通知url必须为直接可访问的url,不能携带参数。示例: “https://pay.weixin.qq.com/wxpay/pay.action” + * + * @param params the params + * @param consumeDataConsumer the consume data consumer + * @return the map + */ + @SneakyThrows + public Map permissionCallback(ResponseSignVerifyParams params, Consumer consumeDataConsumer) { + CallbackParams callbackParams = resolve(params); + String eventType = callbackParams.getEventType(); + boolean closed; + if (Objects.equals(eventType, EventType.PAYSCORE_USER_OPEN.event)) { + closed = false; + } else if (Objects.equals(eventType, EventType.PAYSCORE_USER_CLOSE.event)) { + closed = true; + } else { + log.error("wechat pay event type is not matched, callbackParams {}", callbackParams); + throw new PayException(" wechat pay event type is not matched"); + } + String data = this.decrypt(callbackParams); + PayScoreUserPermissionConsumeData consumeData = MAPPER.readValue(data, PayScoreUserPermissionConsumeData.class); + consumeData.setClosed(closed); + consumeDataConsumer.accept(consumeData); + return Collections.singletonMap("code", "SUCCESS"); + } + + /** + * 用户领卡、守约状态变化、扣费状态变化通知API + *

+ * 用户领取优惠卡后或者用户守约状态发生变更后或扣费状态变化后,微信会把对应信息发送给商户。 + *

+ * 该链接是通过商户预受理领卡请求中提交notify_url参数,必须为https协议。如果链接无法访问,商户将无法接收到微信通知。 通知url必须为直接可访问的url,不能携带参数。示例: “https://pay.weixin.qq.com/wxpay/pay.action” + * + * @param params the params + * @param discountCardConsumer the discount card consumer + * @return the map + */ + @SneakyThrows + public Map discountCardCallback(ResponseSignVerifyParams params, DiscountCardConsumer discountCardConsumer) { + + CallbackParams callbackParams = resolve(params); + String eventType = callbackParams.getEventType(); + + if (Objects.equals(eventType, EventType.DISCOUNT_CARD_AGREEMENT_ENDED.event)) { + String data = this.decrypt(callbackParams); + DiscountCardAgreementEndConsumeData agreementEndConsumeData = MAPPER.readValue(data, DiscountCardAgreementEndConsumeData.class); + discountCardConsumer.getAgreementEndConsumeDataConsumer().accept(agreementEndConsumeData); + } else if (Objects.equals(eventType, EventType.DISCOUNT_CARD_USER_ACCEPTED.event)) { + String data = this.decrypt(callbackParams); + DiscountCardAcceptedConsumeData acceptedConsumeData = MAPPER.readValue(data, DiscountCardAcceptedConsumeData.class); + discountCardConsumer.getAcceptedConsumeDataConsumer().accept(acceptedConsumeData); + } else if (Objects.equals(eventType, EventType.DISCOUNT_CARD_USER_PAID.event)) { + String data = this.decrypt(callbackParams); + DiscountCardUserPaidConsumeData paidConsumeData = MAPPER.readValue(data, DiscountCardUserPaidConsumeData.class); + discountCardConsumer.getCardUserPaidConsumeDataConsumer().accept(paidConsumeData); + } else { + log.error("wechat pay event type is not matched, callbackParams {}", callbackParams); + throw new PayException(" wechat pay event type is not matched"); + } + return Collections.singletonMap("code", "SUCCESS"); + } + + + /** + * Callback. + * + * @param params the params + * @param eventType the event type + * @return the string + */ + @SneakyThrows + private String callback(ResponseSignVerifyParams params, EventType eventType) { + CallbackParams callbackParams = this.resolve(params); + + if (!Objects.equals(callbackParams.getEventType(), eventType.event)) { + log.error("wechat pay event type is not matched, callbackParams {}", callbackParams); + throw new PayException(" wechat pay event type is not matched"); + } + return this.decrypt(callbackParams); + } + + /** + * Resolve callback params. + * + * @param params the params + * @return the callback params + * @throws JsonProcessingException the json processing exception + * @since 1.0.2.RELEASE + */ + private CallbackParams resolve(ResponseSignVerifyParams params) throws JsonProcessingException { + if (signatureProvider.responseSignVerify(params)) { + return MAPPER.readValue(params.getBody(), CallbackParams.class); + } + throw new PayException("invalid wechat pay callback"); + } + + /** + * Decrypt. + * + * @param callbackParams the callback params + * @return the string + * @since 1.0.2.RELEASE + */ + private String decrypt(CallbackParams callbackParams) { + CallbackParams.Resource resource = callbackParams.getResource(); + String associatedData = resource.getAssociatedData(); + String nonce = resource.getNonce(); + String ciphertext = resource.getCiphertext(); + String data = signatureProvider.decryptResponseBody(tenantId, associatedData, nonce, ciphertext); + Assert.hasText(data, "decryptData is required"); + return data; + } + + + /** + * 事件类型用于处理回调. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + enum EventType { + + /** + * 微信支付分确认订单事件. + * + * @since 1.0.2.RELEASE + */ + PAYSCORE_USER_CONFIRM("PAYSCORE.USER_CONFIRM"), + + /** + * 微信支付分用户支付成功订单事件. + * + * @since 1.0.2.RELEASE + */ + PAYSCORE_USER_PAID("PAYSCORE.USER_PAID"), + + /** + * 微信支付分授权事件. + * + * @since 1.0.2.RELEASE + */ + PAYSCORE_USER_OPEN("PAYSCORE.USER_OPEN_SERVICE"), + + /** + * 微信支付分解除授权事件. + * + * @since 1.0.2.RELEASE + */ + PAYSCORE_USER_CLOSE("PAYSCORE.USER_CLOSE_SERVICE"), + + /** + * 用户领取微信先享卡事件. + * + * @since 1.0.2.RELEASE + */ + DISCOUNT_CARD_USER_ACCEPTED("DISCOUNT_CARD.USER_ACCEPTED"), + + /** + * 微信先享卡守约状态变化事件. + * + * @since 1.0.2.RELEASE + */ + DISCOUNT_CARD_AGREEMENT_ENDED("DISCOUNT_CARD.AGREEMENT_ENDED"), + + /** + * 微信先享卡扣费状态变化事件. + * + * @since 1.0.2.RELEASE + */ + DISCOUNT_CARD_USER_PAID("DISCOUNT_CARD.USER_PAID"), + + /** + * 优惠券核销事件. + * + * @since 1.0.0.RELEASE + */ + COUPON("COUPON.USE"), + /** + * 支付成功事件. + * + * @since 1.0.0.RELEASE + */ + TRANSACTION("TRANSACTION.SUCCESS"); + + /** + * The Event. + */ + private final String event; + + /** + * Instantiates a new Event type. + * + * @param event the event + */ + EventType(String event) { + this.event = event; + } + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java new file mode 100644 index 0000000..e2011f0 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java @@ -0,0 +1,314 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + + +import cn.felord.payment.PayException; +import cn.felord.payment.wechat.WechatPayResponseErrorHandler; +import cn.felord.payment.wechat.enumeration.WechatPayV3Type; +import cn.felord.payment.wechat.v3.model.ResponseSignVerifyParams; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.springframework.http.*; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter; +import org.springframework.util.Assert; +import org.springframework.web.client.DefaultResponseErrorHandler; +import org.springframework.web.client.RestOperations; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponents; +import org.springframework.web.util.UriComponentsBuilder; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +/** + * The type Wechat pay client. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +public class WechatPayClient { + /** + * The Signature provider. + */ + private final SignatureProvider signatureProvider; + /** + * The Rest operations. + */ + private RestOperations restOperations; + + /** + * Instantiates a new Wechat pay service. + * + * @param signatureProvider the signature provider + */ + public WechatPayClient(SignatureProvider signatureProvider) { + this.signatureProvider = signatureProvider; + applyDefaultRestTemplate(); + } + + + /** + * 构造 {@link WechatRequestEntity}. + * + * @param the type parameter + * @param wechatPayV3Type the v 3 pay type + * @param m the m + * @return the executor + */ + public Executor withType(WechatPayV3Type wechatPayV3Type, M m) { + return new Executor<>(wechatPayV3Type, m, this.signatureProvider, this.restOperations); + } + + + /** + * The type Executor. + * + * @param the type parameter + * @author felord.cn + * @since 1.0.0.RELEASE + */ + public static class Executor { + /** + * The V3 pay type. + */ + private final WechatPayV3Type wechatPayV3Type; + /** + * The Rest operations. + */ + private final RestOperations restOperations; + /** + * The Signature provider. + */ + private final SignatureProvider signatureProvider; + /** + * The Model. + */ + private final M model; + + /** + * The Request entity bi function. + */ + private BiFunction> requestEntityBiFunction; + + /** + * The Response body consumer. + */ + private Consumer> responseBodyConsumer; + + /** + * Instantiates a new Executor. + * + * @param wechatPayV3Type the v 3 pay type + * @param model the model + * @param signatureProvider the signature provider + * @param restOperations the rest operations + */ + Executor(WechatPayV3Type wechatPayV3Type, + M model, + SignatureProvider signatureProvider, RestOperations restOperations) { + this.wechatPayV3Type = wechatPayV3Type; + this.model = model; + this.signatureProvider = signatureProvider; + this.restOperations = restOperations; + } + + /** + * Function executor. + * + * @param requestEntityBiFunction the request entity bifunction + * @return the executor + */ + public Executor function(BiFunction> requestEntityBiFunction) { + this.requestEntityBiFunction = requestEntityBiFunction; + return this; + } + + /** + * Consumer executor. + * + * @param responseBodyConsumer the response body consumer + * @return the executor + */ + public Executor consumer(Consumer> responseBodyConsumer) { + this.responseBodyConsumer = responseBodyConsumer; + return this; + } + + + /** + * Request. + */ + public void request() { + RequestEntity requestEntity = this.requestEntityBiFunction.apply(this.wechatPayV3Type, this.model); + WechatRequestEntity wechatRequestEntity = WechatRequestEntity.of(requestEntity, this.responseBodyConsumer); + this.doExecute(this.header(wechatRequestEntity)); + } + + + /** + * Download string. + * + * @return the string + */ + public String download() { + RequestEntity requestEntity = this.requestEntityBiFunction.apply(this.wechatPayV3Type, this.model); + WechatRequestEntity wechatRequestEntity = WechatRequestEntity.of(requestEntity, this.responseBodyConsumer); + return this.doDownload(this.header(wechatRequestEntity)); + } + + + /** + * 构造私钥签名. + * + * @param the type parameter + * @param requestEntity the request entity + * @return the wechat request entity + */ + private WechatRequestEntity header(WechatRequestEntity requestEntity) { + + UriComponents uri = UriComponentsBuilder.fromUri(requestEntity.getUrl()).build(); + String canonicalUrl = uri.getPath(); + String encodedQuery = uri.getQuery(); + Assert.notNull(canonicalUrl, "canonicalUrl is required"); + if (encodedQuery != null) { + canonicalUrl += "?" + encodedQuery; + } + // 签名 + HttpMethod httpMethod = requestEntity.getMethod(); + + Assert.notNull(httpMethod, "httpMethod is required"); + HttpHeaders headers = requestEntity.getHeaders(); + + String body = requestEntity.hasBody() ? Objects.requireNonNull(requestEntity.getBody()).toString() : ""; + if (WechatPayV3Type.MARKETING_IMAGE_UPLOAD.pattern().contains(canonicalUrl)) { + body = Objects.requireNonNull(headers.get("Meta-Info")).get(0); + } + + String tenantId = Objects.requireNonNull(headers.get("Pay-TenantId")).get(0); + String authorization = signatureProvider.requestSign(tenantId, httpMethod.name(), canonicalUrl, body); + + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.addAll(headers); + httpHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + // for upload + if (Objects.isNull(httpHeaders.getContentType())) { + httpHeaders.setContentType(MediaType.APPLICATION_JSON); + } + httpHeaders.add("Authorization", authorization); + httpHeaders.add("User-Agent", "X-Pay-Service"); + httpHeaders.remove("Meta-Info"); + httpHeaders.remove("Pay-TenantId"); + return requestEntity.headers(httpHeaders); + + } + + + /** + * Do execute. + * + * @param the type parameter + * @param requestEntity the request entity + */ + private void doExecute(WechatRequestEntity requestEntity) { + + ResponseEntity responseEntity = restOperations.exchange(requestEntity, ObjectNode.class); + HttpHeaders headers = responseEntity.getHeaders(); + ObjectNode body = responseEntity.getBody(); + HttpStatus statusCode = responseEntity.getStatusCode(); + // 微信请求id + String requestId = headers.getFirst("Request-ID"); + if (!statusCode.is2xxSuccessful()) { + throw new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + body); + } + + ResponseSignVerifyParams params = new ResponseSignVerifyParams(); + // 微信平台证书序列号 用来取微信平台证书 + params.setWechatpaySerial(headers.getFirst("Wechatpay-Serial")); + //获取应答签名 + params.setWechatpaySignature(headers.getFirst("Wechatpay-Signature")); + //构造验签名串 + params.setWechatpayTimestamp(headers.getFirst("Wechatpay-Timestamp")); + params.setWechatpayNonce(headers.getFirst("Wechatpay-Nonce")); + + String content = Objects.isNull(body) ? "" : body.toString(); + params.setBody(content); + + // 验证微信服务器签名 + if (signatureProvider.responseSignVerify(params)) { + Consumer> responseConsumer = requestEntity.getResponseBodyConsumer(); + if (Objects.nonNull(responseConsumer)) { + // 验证通过消费 + responseConsumer.accept(responseEntity); + } + } else { + throw new PayException("wechat pay signature failed, Request-ID " + requestId); + } + } + + /** + * Do download string. + * + * @param the type parameter + * @param requestEntity the request entity + * @return the string + */ + private String doDownload(WechatRequestEntity requestEntity) { + + ResponseEntity responseEntity = restOperations.exchange(requestEntity, String.class); + + HttpStatus statusCode = responseEntity.getStatusCode(); + // 微信请求id + String requestId = requestEntity.getHeaders().getFirst("Request-ID"); + if (!statusCode.is2xxSuccessful()) { + throw new PayException("wechat pay server error, Request-ID " + requestId + " , statusCode " + statusCode + ",result : " + responseEntity); + } + return Optional.ofNullable(responseEntity.getBody()).orElse(""); + } + + } + + /** + * Signature provider signature provider. + * + * @return the signature provider + */ + public SignatureProvider signatureProvider() { + return signatureProvider; + } + + /** + * Apply default rest template. + */ + private void applyDefaultRestTemplate() { + RestTemplate restTemplate = new RestTemplate(); + DefaultResponseErrorHandler errorHandler = new WechatPayResponseErrorHandler(); + restTemplate.setErrorHandler(errorHandler); + List> messageConverters = restTemplate.getMessageConverters(); + + messageConverters.removeIf(httpMessageConverter -> httpMessageConverter instanceof AllEncompassingFormHttpMessageConverter); + messageConverters.add(new ExtensionFormHttpMessageConverter()); + restTemplate.setMessageConverters(messageConverters); + this.restOperations = restTemplate; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayScoreApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayScoreApi.java new file mode 100644 index 0000000..86068ae --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayScoreApi.java @@ -0,0 +1,467 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import cn.felord.payment.wechat.WechatPayProperties; +import cn.felord.payment.wechat.enumeration.WeChatServer; +import cn.felord.payment.wechat.enumeration.WechatPayV3Type; +import cn.felord.payment.wechat.v3.model.payscore.*; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; +import org.springframework.web.util.UriComponentsBuilder; + +import java.net.URI; + +/** + * 微信支付分API. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +public class WechatPayScoreApi extends AbstractApi { + /** + * Instantiates a new Abstract api. + * + * @param wechatPayClient the wechat pay client + * @param tenantId the tenant id + */ + public WechatPayScoreApi(WechatPayClient wechatPayClient, String tenantId) { + super(wechatPayClient, tenantId); + } + + /** + * 微信支付分-查询用户授权状态API. + *

+ * 免确认订单起始接口,【免确认订单模式】是高级接口权限,参见:业务流程说明 + *

+ * 用户申请使用服务时,商户可通过此接口查询用户是否“已授权”本服务。在“已授权”状态下的服务,用户才可以申请使用。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity userServiceState(UserServiceStateParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_USER_SERVICE_STATE, params) + .function((wechatPayV3Type, userServiceStateParams) -> { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + MultiValueMap expandParams = new LinkedMultiValueMap<>(); + expandParams.add("appid", v3.getAppId()); + expandParams.add("service_id", params.getServiceId()); + expandParams.add("openid", params.getOpenId()); + + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(expandParams) + .toUri(); + return Get(uri); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 创建支付分订单API + *

+ * 用户申请使用服务时,商户可通过此接口申请创建微信支付分订单。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity createServiceOrder(UserServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_CREATE_USER_SERVICE_ORDER, params) + .function((wechatPayV3Type, orderParams) -> { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + + orderParams.setAppid(v3.getAppId()); + orderParams.setNotifyUrl(v3.getDomain().concat(orderParams.getNotifyUrl())); + + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 查询支付分订单API + *

+ * 用于查询单笔微信支付分订单详细信息。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryServiceOrder(QueryServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_QUERY_USER_SERVICE_ORDER, params) + .function((wechatPayV3Type, orderParams) -> { + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + + String outOrderNo = orderParams.getOutOrderNo(); + if (StringUtils.hasText(outOrderNo)) { + queryParams.add("out_order_no", outOrderNo); + } + + String queryId = orderParams.getQueryId(); + if (StringUtils.hasText(queryId)) { + queryParams.add("query_id", queryId); + } + queryParams.add("service_id", orderParams.getServiceId()); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + queryParams.add("appid", v3.getAppId()); + + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .toUri(); + return Get(uri); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 取消支付分订单API + *

+ * 微信支付分订单创建之后,由于某些原因导致订单不能正常支付时,可使用此接口取消订单。 + *

+ * 订单为以下状态时可以取消订单:CREATED(已创单)、DOING(进行中)(包括商户完结支付分订单后,且支付分订单收款状态为待支付USER_PAYING) + *

+ * 注意: + * • DOING状态包含了订单用户确认、已完结-待支付(USER_PAYING)的状态,因此这种状态下订单也是可以被取消的,请确认当前操作是否正确,防止误操作将完结后需要支付分收款的单据取消。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity cancelServiceOrder(CancelServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_CANCEL_USER_SERVICE_ORDER, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(orderParams.getOutOrderNo()) + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + orderParams.setAppid(v3.getAppId()); + orderParams.setOutOrderNo(null); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 修改订单金额API + *

+ * 完结订单总金额与实际金额不符时,可通过该接口修改订单金额。 + * 例如:充电宝场景,由于机器计费问题导致商户完结订单时扣除用户99元,用户客诉成功后,商户需要按照实际的消费金额(如10元)扣费,当服务订单支付状态处于“待支付”时,商户可使用此能力修改订单金额。 + *

+ * 注意: + * • 若此笔订单已收款成功,商户直接使用退款能力,将差价退回用户即可。 + *

+ * • 修改次数>=1,第n次修改后金额 <第n-1次修改后金额 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity modifyServiceOrder(ModifyServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_MODIFY_USER_SERVICE_ORDER, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(orderParams.getOutOrderNo()) + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + orderParams.setAppid(v3.getAppId()); + orderParams.setOutOrderNo(null); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 完结支付分订单API + *

+ * 前置条件:服务订单状态为“进行中”且订单状态说明需为[USER_CONFIRM:用户确认] + *

+ * 完结微信支付分订单。用户使用服务完成后,商户可通过此接口完结订单。 + *

+ * 特别说明: + * • 完结接口调用成功后,微信支付将自动发起免密代扣。 若扣款失败,微信支付将自动再次发起免密代扣(按照一定频次),直到扣成功为止。 + * + * @param params the params + * @return wechat response entity + */ + public WechatResponseEntity completeServiceOrder(CompleteServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_COMPLETE_USER_SERVICE_ORDER, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(orderParams.getOutOrderNo()) + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + orderParams.setAppid(v3.getAppId()); + orderParams.setOutOrderNo(null); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 商户发起催收扣款API + *

+ * 前置条件:服务订单支付状态处于“待支付”状态 + *

+ * 当微信支付分订单支付状态处于“待支付”时,商户可使用该接口向用户发起收款。 + *

+ * 注意: + * • 此能力不影响微信支付分代商户向用户发起收款的策略。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity payServiceOrder(PayServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_PAY_USER_SERVICE_ORDER, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(orderParams.getOutOrderNo()) + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + orderParams.setAppid(v3.getAppId()); + orderParams.setOutOrderNo(null); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 同步服务订单信息API + *

+ * 前提条件:同步商户渠道收款成功信息时,即场景类型=“Order_Paid”,订单的状态需为[MCH_COMPLETE:商户完结订单] + *

+ * 由于收款商户进行的某些“线下操作”会导致微信支付侧的订单状态与实际情况不符。例如,用户通过线下付款的方式已经完成支付,而微信支付侧并未支付成功,此时可能导致用户重复支付。因此商户需要通过订单同步接口将订单状态同步给微信支付,修改订单在微信支付系统中的状态。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity syncServiceOrder(SyncServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_SYNC_USER_SERVICE_ORDER, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(orderParams.getOutOrderNo()) + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + orderParams.setAppid(v3.getAppId()); + orderParams.setOutOrderNo(null); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 创单结单合并API + *

+ * 相对需确认模式,免确认模式减少了用户确认授权这步操作,因此在免确认模式下商户无法获取用户的授权状态,为了解决商户的困扰,我们为免确认模式特别提供了查询授权状态和调起授权页面的api接口,这些接口仅在免确认模式下需要调用,且必须调用。 + *

+ * 该接口适用于无需微信支付分做订单风控判断的业务场景,在服务完成后,通过该接口对用户进行免密代扣。 + *

+ * 注意: + * • 限制条件:【免确认订单模式】,用户已授权状态下,可调用该接口。 + *

+ * 特别提醒:创单结单合并接口暂未对外开放,如有需要请咨询对接的微信支付运营人员,申请开通调用权限。 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity directCompleteServiceOrder(DirectCompleteServiceOrderParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_DIRECT_COMPLETE, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + orderParams.setAppid(v3.getAppId()); + String notifyUrl = orderParams.getNotifyUrl(); + if (StringUtils.hasText(notifyUrl)) { + orderParams.setNotifyUrl(v3.getDomain().concat(notifyUrl)); + } + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 商户预授权API + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity permissions(ServiceOrderPermissionParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_PERMISSIONS, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .toUri(); + + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + String notifyUrl = orderParams.getNotifyUrl(); + orderParams.setAppid(v3.getAppId()); + if (StringUtils.hasText(notifyUrl)) { + orderParams.setNotifyUrl(v3.getDomain().concat(notifyUrl)); + } + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + + /** + * 查询与用户授权记录(授权协议号)API + *

+ * 通过authorization_code,商户查询与用户授权关系 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryPermissionsByAuthCode(PermissionsAuthCodeParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_PERMISSIONS_AUTH_CODE, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .queryParam("service_id", orderParams.getServiceId()) + .build() + .expand(orderParams.getAuthorizationCode()) + .toUri(); + + return Get(uri); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 解除用户授权关系(授权协议号)API + *

+ * 通过authorization_code,商户解除用户授权关系 + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity terminatePermissionsByAuthCode(PermissionsAuthCodeParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_TERMINATE_PERMISSIONS_AUTH_CODE, params) + .function((wechatPayV3Type, orderParams) -> { + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(orderParams.getAuthorizationCode()) + .toUri(); + orderParams.setAuthorizationCode(null); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 查询与用户授权记录(openid)API + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity queryPermissionsByOpenId(PermissionsOpenIdParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_PERMISSIONS_OPENID, params) + .function((wechatPayV3Type, orderParams) -> { + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .queryParam("appid", v3.getAppId()) + .queryParam("service_id", orderParams.getServiceId()) + .build() + .expand(orderParams.getOpenid()) + .toUri(); + return Get(uri); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } + + /** + * 解除用户授权关系(openid)API + * + * @param params the params + * @return the wechat response entity + */ + public WechatResponseEntity terminatePermissionsByOpenId(PermissionsOpenIdParams params) { + WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); + this.client().withType(WechatPayV3Type.PAY_SCORE_TERMINATE_PERMISSIONS_OPENID, params) + .function((wechatPayV3Type, orderParams) -> { + + URI uri = UriComponentsBuilder.fromHttpUrl(wechatPayV3Type.uri(WeChatServer.CHINA)) + .build() + .expand(orderParams.getOpenid()) + .toUri(); + WechatPayProperties.V3 v3 = this.wechatMetaBean().getV3(); + orderParams.setAppid(v3.getAppId()); + orderParams.setOpenid(null); + return Post(uri, orderParams); + }) + .consumer(wechatResponseEntity::convert) + .request(); + return wechatResponseEntity; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatRequestEntity.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatRequestEntity.java new file mode 100644 index 0000000..223282a --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatRequestEntity.java @@ -0,0 +1,94 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.Getter; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.RequestEntity; +import org.springframework.http.ResponseEntity; +import org.springframework.util.MultiValueMap; + +import java.lang.reflect.Type; +import java.net.URI; +import java.util.function.Consumer; + +/** + * The type Wechat request entity. + * + * @param the type parameter + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Getter +public class WechatRequestEntity extends RequestEntity { + + /** + * The Response body consumer. + */ + private final Consumer> responseBodyConsumer; + + /** + * Instantiates a new Wechat request entity. + * + * @param body the body + * @param headers the headers + * @param method the method + * @param url the url + * @param type the type + * @param responseBodyConsumer the response body consumer + */ + public WechatRequestEntity(T body, MultiValueMap headers, HttpMethod method, URI url, Type type, Consumer> responseBodyConsumer) { + super(body, headers, method, url, type); + this.responseBodyConsumer = responseBodyConsumer; + } + + /** + * Headers wechat request entity. + * + * @param httpHeaders the http headers + * @return the wechat request entity + */ + public WechatRequestEntity headers(HttpHeaders httpHeaders) { + return new WechatRequestEntity<>(this.getBody(), + httpHeaders, + this.getMethod(), + this.getUrl(), + this.getType(), + this.responseBodyConsumer); + } + + + /** + * Of wechat request entity. + * + * @param requestEntity the request entity + * @param responseBodyConsumer the response body consumer + * @return the wechat request entity + */ + public static WechatRequestEntity of(RequestEntity requestEntity, Consumer> responseBodyConsumer) { + return new WechatRequestEntity<>(requestEntity.getBody(), + requestEntity.getHeaders(), + requestEntity.getMethod(), + requestEntity.getUrl(), + requestEntity.getType(), + responseBodyConsumer); + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatResponseEntity.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatResponseEntity.java new file mode 100644 index 0000000..c95a846 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatResponseEntity.java @@ -0,0 +1,126 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; + +import java.util.Objects; + +/** + * The type Wechat response entity. + * + * @param the type parameter + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Slf4j +@Data +public class WechatResponseEntity { + /** + * The Http status. + */ + private int httpStatus; + /** + * The Body. + */ + private T body; + + + /** + * Convert {@link ResponseEntity} to {@link WechatResponseEntity}. + * + * @param responseEntity the response entity + */ + public void convert(ResponseEntity responseEntity) { + if (log.isDebugEnabled()) { + log.debug("wechat response {}", responseEntity); + } + if (Objects.nonNull(responseEntity)) { + this.httpStatus = responseEntity.getStatusCodeValue(); + this.body = responseEntity.getBody(); + } else { + this.httpStatus = HttpStatus.REQUEST_TIMEOUT.value(); + this.body = null; + } + } + + + /** + * Is 1 xx informational boolean. + * + * @return the boolean + */ + public boolean is1xxInformational() { + if (log.isDebugEnabled()) { + log.debug("wechat httpStatus {}", this.httpStatus); + } + return HttpStatus.valueOf(this.httpStatus).is1xxInformational(); + } + + /** + * Is 2xx successful boolean. + * + * @return the boolean + */ + public boolean is2xxSuccessful() { + if (log.isDebugEnabled()) { + log.debug("wechat httpStatus {}", this.httpStatus); + } + return HttpStatus.valueOf(this.httpStatus).is2xxSuccessful(); + } + + /** + * Is 3xx redirection boolean. + * + * @return the boolean + */ + public boolean is3xxRedirection() { + if (log.isDebugEnabled()) { + log.debug("wechat httpStatus {}", this.httpStatus); + } + return HttpStatus.valueOf(this.httpStatus).is3xxRedirection(); + } + + /** + * Is 4xx client error boolean. + * + * @return the boolean + */ + public boolean is4xxClientError() { + if (log.isDebugEnabled()) { + log.debug("wechat httpStatus {}", this.httpStatus); + } + return HttpStatus.valueOf(this.httpStatus).is4xxClientError(); + } + + /** + * Is 5xx server error boolean. + * + * @return the boolean + */ + public boolean is5xxServerError() { + if (log.isDebugEnabled()) { + log.debug("wechat httpStatus {}", this.httpStatus); + } + return HttpStatus.valueOf(this.httpStatus).is5xxServerError(); + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Amount.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Amount.java new file mode 100644 index 0000000..621b14f --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Amount.java @@ -0,0 +1,39 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 支付金额 货币单位【分】默认使用人民币标识CNY + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class Amount { + /** + * The Total. + */ + private int total; + /** + * The Currency. + */ + private String currency = "CNY"; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CallbackParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CallbackParams.java new file mode 100644 index 0000000..65ec281 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CallbackParams.java @@ -0,0 +1,84 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 微信支付回调请求参数. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CallbackParams { + /** + * The Id. + */ + private String id; + /** + * The Create time. + */ + private String createTime; + /** + * The Event type. + */ + private String eventType; + /** + * The Resource type. + */ + private String resourceType; + /** + * The Summary. + */ + private String summary; + /** + * The Resource. + */ + private Resource resource; + + + /** + * The type Resource. + */ + @Data + public static class Resource { + /** + * The Algorithm. + */ + private String algorithm; + /** + * The Ciphertext. + */ + private String ciphertext; + /** + * The Associated data. + */ + private String associatedData; + /** + * The Nonce. + */ + private String nonce; + /** + * The Original type. + */ + private String originalType; + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/ConsumeInformation.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/ConsumeInformation.java new file mode 100644 index 0000000..f172d1b --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/ConsumeInformation.java @@ -0,0 +1,54 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +import java.util.List; + +/** + * 已实扣代金券信息 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class ConsumeInformation { + + /** + * The Consume mchid. + */ + private String consumeMchid; + + /** + * The Consume time. + */ + private String consumeTime; + + /** + * The Goods detail. + */ + private List goodsDetail; + + /** + * The Transaction id. + */ + private String transactionId; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponAvailableTime.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponAvailableTime.java new file mode 100644 index 0000000..dff3444 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponAvailableTime.java @@ -0,0 +1,43 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * The type Coupon available time. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CouponAvailableTime { + /** + * The Available time after receive. + */ + private Long availableTimeAfterReceive; + /** + * The Fix available time. + */ + private FixAvailableTime fixAvailableTime; + /** + * The Second day available. + */ + private Boolean secondDayAvailable; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponConsumeData.java new file mode 100644 index 0000000..ed11112 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponConsumeData.java @@ -0,0 +1,112 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 微信代金券核销通知参数 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CouponConsumeData { + + /** + * The Available begin time. + */ + private String availableBeginTime; + /** + * The Available end time. + */ + private String availableEndTime; + /** + * The Consume information. + */ + private ConsumeInformation consumeInformation; + /** + * The Coupon id. + */ + private String couponId; + /** + * The Coupon name. + */ + private String couponName; + /** + * The Coupon type. + */ + private CouponType couponType; + /** + * The Create time. + */ + private String createTime; + /** + * The Description. + */ + private String description; + /** + * The Discount to. + */ + private DiscountTo discountTo; + /** + * The No cash. + */ + private Boolean noCash; + /** + * The Normal coupon information. + */ + private NormalCouponInformation normalCouponInformation; + /** + * The Singleitem. + */ + private Boolean singleitem; + /** + * The Singleitem discount off. + */ + private SingleitemDiscountOff singleitemDiscountOff; + /** + * The Status. + */ + private String status; + /** + * The Stock creator mchid. + */ + private String stockCreatorMchid; + /** + * The Stock id. + */ + private String stockId; + + /** + * 券类型 + * + * @since 1.0.2.RELEASE + */ + public enum CouponType{ + /** + * 满减券 + */ + NORMAL, + /** + * 减至券 + */ + CUT_TO + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponDetailsQueryParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponDetailsQueryParams.java new file mode 100644 index 0000000..2e6f5ff --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponDetailsQueryParams.java @@ -0,0 +1,41 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 查询代金券详情API参数 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CouponDetailsQueryParams { + /** + * 用户在appid下授权得到的openid + *

+ * 参考发券 + */ + private String openId; + /** + * 代金券id + */ + private String couponId; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponUseRule.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponUseRule.java new file mode 100644 index 0000000..a3f13c5 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/CouponUseRule.java @@ -0,0 +1,109 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +import java.util.List; + +/** + * 核销规则. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CouponUseRule { + + + /** + * 可核销商品编码 + */ + private List availableItems; + + /** + * 可用商户 + */ + private List availableMerchants; + + /** + * 是否可以叠加使用 + */ + private Boolean combineUse; + + /** + * 券生效时间 + */ + private CouponAvailableTime couponAvailableTime; + + /** + * 固定面额满减券使用规则 + */ + private FixedNormalCoupon fixedNormalCoupon; + + /** + * 订单优惠标记 + */ + private List goodsTag; + /** + * 指定支付方式 + */ + private List limitPay; + /** + * 指定银行卡BIN + */ + private LimitCard limitCard; + + /** + * 支付方式,枚举值: + * + *

    + *
  • MICROAPP:小程序支付
  • + *
  • APPPAY:APP支付
  • + *
  • PPAY:免密支付
  • + *
  • CARD:刷卡支付
  • + *
  • FACE:人脸支付
  • + *
  • OTHER:其他支付
  • + *
+ */ + private String tradeType; + + + /** + * 指定银行卡BIN + *

+ * 限定该批次核销的指定银行卡BIN,当批次限定了指定银行卡时方可生效 + */ + @Data + public static class LimitCard { + /** + * 银行卡名称 + *

+ * 将在微信支付收银台向用户展示,最多4个中文字 + */ + private String name; + /** + * 指定卡BIN + *

+ * 使用指定卡BIN的银行卡支付方可享受优惠,按json格式 + * 特殊规则:单个卡BIN的字符长度为【6,9】,条目个数限制为【1,10】。 + * 示例值:['62123456','62123457'] + */ + private List bin; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Detail.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Detail.java new file mode 100644 index 0000000..2c2381f --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Detail.java @@ -0,0 +1,45 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +import java.util.List; + +/** + * The type Detail. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class Detail { + /** + * 订单原价 + */ + private int costPrice; + /** + * 商品小票ID + */ + private String invoiceId; + /** + * 单品列表 + */ + private List goodsDetail; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/DiscountTo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/DiscountTo.java new file mode 100644 index 0000000..2b07faf --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/DiscountTo.java @@ -0,0 +1,41 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 减至优惠限定字段,仅减至优惠场景有返回 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class DiscountTo { + + /** + * The Cut to price. + */ + private Long cutToPrice; + /** + * The Max price. + */ + private Long maxPrice; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FixAvailableTime.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FixAvailableTime.java new file mode 100644 index 0000000..ae6ba94 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FixAvailableTime.java @@ -0,0 +1,47 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +import java.util.List; + +/** + * The type Fix available time. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class FixAvailableTime { + + /** + * The Available week day. + */ + private List availableWeekDay; + /** + * The Begin time. + */ + private Long beginTime; + /** + * The End time. + */ + private Long endTime; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FixedNormalCoupon.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FixedNormalCoupon.java new file mode 100644 index 0000000..ccc15c4 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FixedNormalCoupon.java @@ -0,0 +1,44 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + + +/** + * 固定面额满减券使用规则, stock_type为NORMAL时必填 + *

+ * 满transactionMinimum 减少 couponAmount + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class FixedNormalCoupon { + + /** + * 面额,单位分 + */ + private Long couponAmount; + /** + * 门槛 满M元可用 + */ + private Long transactionMinimum; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FundFlowBillParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FundFlowBillParams.java new file mode 100644 index 0000000..b4ad6af --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/FundFlowBillParams.java @@ -0,0 +1,52 @@ +/* + * + * Copyright 2019-2021 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model; + +import cn.felord.payment.wechat.enumeration.FundFlowAccountType; +import cn.felord.payment.wechat.enumeration.TarType; +import lombok.Data; + +import java.time.LocalDate; + +/** + * 申请资金账单请求参数 + * + * @author felord.cn + * @since 1.0.3.RELEASE + */ +@Data +public class FundFlowBillParams { + /** + * 账单日期,必传。 + *

+ * 格式YYYY-MM-DD,仅支持三个月内的账单下载申请。 + */ + private LocalDate billDate; + /** + * 资金账户类型,不填则默认值为{@link FundFlowAccountType#BASIC} + * + * @see FundFlowAccountType + */ + private FundFlowAccountType accountType; + /** + * 压缩类型,不填默认值为数据流 + * + * @see TarType + */ + private TarType tarType; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Goods.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Goods.java new file mode 100644 index 0000000..1fd46f9 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Goods.java @@ -0,0 +1,49 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class Goods { + /** + * 商户侧商品编码 + */ + private String merchantGoodsId; + /** + * 微信侧商品编码 + */ + private String wechatpayGoodsId; + /** + * 商品名称 + */ + private String goodsName; + /** + * 商品数量 + */ + private int quantity; + /** + * 商品单价 + */ + private int unitPrice; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/GoodsDetail.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/GoodsDetail.java new file mode 100644 index 0000000..2093391 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/GoodsDetail.java @@ -0,0 +1,49 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 商户下单接口传的单品信息 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class GoodsDetail { + + /** + * The Discount amount. + */ + private Long discountAmount; + /** + * The Goods id. + */ + private String goodsId; + /** + * The Price. + */ + private Long price; + /** + * The Quantity. + */ + private Long quantity; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/H5Info.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/H5Info.java new file mode 100644 index 0000000..ef47f41 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/H5Info.java @@ -0,0 +1,51 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * H5 信息 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class H5Info { + /** + * 场景类型 + */ + private String type; + /** + * 应用名称 + */ + private String appName; + /** + * 网站URL + */ + private String appUrl; + /** + * IOS 平台 BundleID + */ + private String bundleId; + /** + * Android 平台 PackageName + */ + private String packageName; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/MchQueryParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/MchQueryParams.java new file mode 100644 index 0000000..fb34284 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/MchQueryParams.java @@ -0,0 +1,47 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 查询代金券可用商户. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class MchQueryParams { + /** + * 必填 + *

+ * 查询代金券可用商户API 分页页码,最大1000。 + */ + private Integer offset = 0; + /** + * 必填 + *

+ * 查询代金券可用商户API 最大50。 + */ + private Integer limit = 10; + /** + * 批次ID + */ + private String stockId; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/NormalCouponInformation.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/NormalCouponInformation.java new file mode 100644 index 0000000..bb87836 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/NormalCouponInformation.java @@ -0,0 +1,41 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 普通满减券面额、门槛信息 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class NormalCouponInformation { + + /** + * The Coupon amount. + */ + private Long couponAmount; + /** + * The Transaction minimum. + */ + private Long transactionMinimum; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PatternInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PatternInfo.java new file mode 100644 index 0000000..e93c1e8 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PatternInfo.java @@ -0,0 +1,54 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + + +import cn.felord.payment.wechat.enumeration.CouponBgColor; +import lombok.Data; + +/** + * 优惠券样式 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class PatternInfo { + /** + * 背景色 + */ + private CouponBgColor backgroundColor; + /** + * 券详情图片 + */ + private String couponImage; + /** + * 使用说明 + */ + private String description; + /** + * 商户logo + */ + private String merchantLogo; + /** + * 商户名称 + */ + private String merchantName; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PayParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PayParams.java new file mode 100644 index 0000000..25a7e21 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PayParams.java @@ -0,0 +1,84 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + + +import lombok.Data; + +/** + * 支付请求参数. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class PayParams { + /** + * The Appid. + */ + private String appid; + /** + * The Mchid. + */ + private String mchid; + /** + * 商品描述 + * Image形象店-深圳腾大-QQ公仔 + */ + private String description; + /** + * 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一,详见【商户订单号】。 + * 示例值:1217752501201407033233368018 + */ + private String outTradeNo; + /** + * 订单失效时间 YYYY-MM-DDTHH:mm:ss+TIMEZONE + */ + private String timeExpire; + /** + * 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用 + */ + private String attach; + /** + * 通知URL必须为直接可访问的URL,不允许携带查询串。 + */ + private String notifyUrl; + /** + * 订单优惠标记 + */ + private String goodsTag; + /** + * 支付金额 + */ + private Amount amount; + /** + * 支付者 JSAPI/小程序下单 必传 + */ + private Payer payer; + /** + * 优惠功能 + */ + private Detail detail; + /** + * 场景信息 + */ + private SceneInfo sceneInfo; + + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Payer.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Payer.java new file mode 100644 index 0000000..5802b6e --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/Payer.java @@ -0,0 +1,43 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * The type Payer. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class Payer { + /** + * 用户标识 + */ + private String openid; + /** + * 用户服务标识 + */ + private String spOpenid; + /** + * 用户子标识 + */ + private String subOpenid; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PromotionDetail.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PromotionDetail.java new file mode 100644 index 0000000..a932d47 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/PromotionDetail.java @@ -0,0 +1,111 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +import java.util.List; + +/** + * The type Promotion detail. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class PromotionDetail { + + /** + * The Amount. + */ + private Long amount; + /** + * The Coupon id. + */ + private String couponId; + /** + * The Currency. + */ + private String currency; + /** + * The Goods detail. + */ + private List goodsDetail; + /** + * The Merchant contribute. + */ + private Long merchantContribute; + /** + * The Name. + */ + private String name; + /** + * The Other contribute. + */ + private Long otherContribute; + /** + * The Scope. + */ + private String scope; + /** + * The Stock id. + */ + private String stockId; + /** + * The Type. + */ + private String type; + /** + * The Wechatpay contribute. + */ + private Long wechatpayContribute; + + /** + * The type Goods detail. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class GoodsDetail { + + /** + * The Goods id. + */ + private String goodsId; + /** + * The Quantity. + */ + private Long quantity; + /** + * The Unit price. + */ + private Long unitPrice; + /** + * The Discount amount. + */ + private Long discountAmount; + /** + * The Goods remark. + */ + private String goodsRemark; + + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/ResponseSignVerifyParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/ResponseSignVerifyParams.java new file mode 100644 index 0000000..74be136 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/ResponseSignVerifyParams.java @@ -0,0 +1,53 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import cn.felord.payment.wechat.v3.SignatureProvider; +import lombok.Data; + +/** + * 微信的响应签名校验参数 + * + * @author felord.cn + * @see SignatureProvider#responseSignVerify(ResponseSignVerifyParams) SignatureProvider#responseSignVerify(ResponseSignVerifyParams)SignatureProvider#responseSignVerify(ResponseSignVerifyParams) + * @since 1.0.0.RELEASE + */ +@Data +public class ResponseSignVerifyParams { + /** + * response.headers['Wechatpay-Serial'] 当前使用的微信平台证书序列号 + */ + private String wechatpaySerial; + /** + * response.headers['Wechatpay-Signature'] 微信平台签名 + */ + private String wechatpaySignature; + /** + * response.headers['Wechatpay-Timestamp'] 微信服务器的时间戳 + */ + private String wechatpayTimestamp; + /** + * response.headers['Wechatpay-Nonce'] 微信服务器提供的随机串 + */ + private String wechatpayNonce; + /** + * response.body 微信服务器的响应体 + */ + private String body; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SceneInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SceneInfo.java new file mode 100644 index 0000000..3cc6f5c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SceneInfo.java @@ -0,0 +1,47 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 场景信息 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class SceneInfo { + /** + * 用户终端IP + */ + private String payerClientIp; + /** + * 商户端设备号 + */ + private String deviceId; + /** + * 商户门店信息 + */ + private StoreInfo storeInfo; + /** + * H5 场景信息 + */ + private H5Info h5Info; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SettleInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SettleInfo.java new file mode 100644 index 0000000..960564c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SettleInfo.java @@ -0,0 +1,37 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class SettleInfo { + /** + * 是否指定分账 + */ + private Boolean profitSharing; + /** + * 补差金额 + */ + private Integer subsidyAmount; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SingleitemDiscountOff.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SingleitemDiscountOff.java new file mode 100644 index 0000000..0f556d4 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/SingleitemDiscountOff.java @@ -0,0 +1,34 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 单品优惠特定信息 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class SingleitemDiscountOff { + + private Long singlePriceMax; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StockUseRule.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StockUseRule.java new file mode 100644 index 0000000..42c1c07 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StockUseRule.java @@ -0,0 +1,57 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 批次使用规则 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class StockUseRule { + + /** + * 总消耗金额,单位:分。 + * max_amount需要等于coupon_amount(面额) * max_coupons(发放总上限) + */ + private Long maxAmount; + /** + * 单天最高消耗金额,单位:分 + */ + private Long maxAmountByDay; + /** + * 最大发券数 + */ + private Long maxCoupons; + /** + * 单个用户可领个数,每个用户最多60张券 + */ + private Long maxCouponsPerUser; + /** + * 是否开启自然人限制 + */ + private Boolean naturalPersonLimit; + /** + * api发券防刷 + */ + private Boolean preventApiAbuse; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksCreateParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksCreateParams.java new file mode 100644 index 0000000..dae859b --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksCreateParams.java @@ -0,0 +1,88 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.OffsetDateTime; + +/** + * 创建优惠券批次参数. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class StocksCreateParams { + /** + * 批次名称 + */ + private String stockName; + /** + * 仅配置商户可见,用于自定义信息 + */ + private String comment; + /** + * 批次归属商户号 + */ + private String belongMerchant; + /** + * 批次开始时间 rfc 3339 yyyy-mm-ddthh:mm:ss.sss+timezone + */ + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8") + private OffsetDateTime availableBeginTime; + /** + * 批次结束时间 rfc 3339 YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE + */ + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8") + private OffsetDateTime availableEndTime; + /** + * 可创建代金券的类型包含预充值和免充值两种类型。此字段用来标识制券 是否无资金流 + *

+ * ● 预充值代金券适用于第三方出资策划的活动,例如:满100减10. 指订单金额100元,用户实付90元,商户实收100元。设置为{@link Boolean#FALSE} + *

+ * ● 免充值适用于商户策划的活动,例如:满100减10。 指订单金额100元,用户实付90元(用户领券后,在支付中直接核销10元),商户实收90元。设置为{@link Boolean#TRUE} + */ + private Boolean noCash; + /** + * 批次类型 + */ + private String stockType = "NORMAL"; + /** + * 商户单据号 + */ + private String outRequestNo; + /** + * 扩展属性 + */ + private String extInfo; + /** + * 批次使用规则 + */ + private StockUseRule stockUseRule; + /** + * 核销规则 + */ + private CouponUseRule couponUseRule; + /** + * 代金券样式 + */ + private PatternInfo patternInfo; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksQueryParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksQueryParams.java new file mode 100644 index 0000000..35f8a20 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksQueryParams.java @@ -0,0 +1,65 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model; + +import cn.felord.payment.wechat.enumeration.StockStatus; +import lombok.Data; + +import java.time.OffsetDateTime; + +/** + * 查询参数,适用以下接口: + *

+ * 条件查询批次列表API + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class StocksQueryParams { + /** + * 必填 + *

+ * 条件查询批次列表API 页码从0开始,默认第0页,传递1可能出错。 + */ + private Integer offset = 0; + /** + * 必填 + *

+ * 条件查询批次列表API 分页大小,最大10。 + */ + private Integer limit = 10; + /** + * 选填 + *

+ * 起始时间 最终满足格式 {@code yyyy-MM-dd'T'HH:mm:ss.SSSXXX} + */ + private OffsetDateTime createStartTime; + /** + * 选填 + *

+ * 终止时间 最终满足格式 {@code yyyy-MM-dd'T'HH:mm:ss.SSSXXX} + */ + private OffsetDateTime createEndTime; + /** + * 根据API而定 + *

+ * 批次状态 + */ + private StockStatus status; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksSendParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksSendParams.java new file mode 100644 index 0000000..f814c2c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StocksSendParams.java @@ -0,0 +1,61 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * 代金券发放接口请求参数 + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class StocksSendParams { + /** + * 批次号 必须为代金券(全场券或单品券)批次号,不支持立减与折扣。 + */ + private String stockId; + /** + * 用户openid 该openid需要与接口传入中的appid有对应关系。 + */ + private String openid; + /** + * 商户单据号 + */ + private String outRequestNo; + /** + * 公众账号ID + */ + private String appid; + /** + * 创建批次的商户号 + */ + private String stockCreatorMchid; + /** + * 指定面额发券场景,券面额,其他场景不需要填,单位:分。 + * 校验规则:仅在发券时指定面额及门槛的场景才生效,常规发券场景请勿传入该信息。 + */ + private Long couponValue; + /** + * 指定面额发券批次门槛,其他场景不需要,单位:分。 + * 校验规则:仅在发券时指定面额及门槛的场景才生效,常规发券场景请勿传入该信息。 + */ + private Long couponMinimum; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StoreInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StoreInfo.java new file mode 100644 index 0000000..83ef02a --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/StoreInfo.java @@ -0,0 +1,45 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class StoreInfo { + /** + * 门店编号 + */ + private String id; + /** + * 门店名称 + */ + private String name; + /** + * 地区编码 + */ + private String areaCode; + /** + * 详细地址 + */ + private String address; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TradeBillParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TradeBillParams.java new file mode 100644 index 0000000..b44e0b3 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TradeBillParams.java @@ -0,0 +1,70 @@ +/* + * + * Copyright 2019-2021 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model; + +import cn.felord.payment.wechat.enumeration.TarType; +import cn.felord.payment.wechat.enumeration.TradeBillType; +import lombok.Data; + +import java.time.LocalDate; + +/** + * 申请交易账单请求参数 + * + * @author felord.cn + * @since 1.0.3.RELEASE + */ +@Data +public class TradeBillParams { + /** + * 账单日期,必传。 + *

+ * 格式YYYY-MM-DD,仅支持三个月内的账单下载申请。 + */ + private LocalDate billDate; + /** + * 二级商户号,选填。 + * + *

    + *
  1. 若商户是直连商户:无需填写该字段。
  2. + *
  3. 若商户是服务商: + *
      + *
    • 不填则默认返回服务商下的交易或退款数据。
    • + *
    • 如需下载某个子商户下的交易或退款数据,则该字段必填。
    • + *
    + *
  4. + *
+ *

+ * 特殊规则:最小字符长度为8 + *

+ * 注意:仅适用于电商平台 服务商 + */ + private String subMchid; + /** + * 账单类型,不填则默认值为{@link TradeBillType#ALL} + * + * @see TradeBillType + */ + private TradeBillType billType; + /** + * 压缩类型,不填默认值为数据流 + * + * @see TarType + */ + private TarType tarType; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TransactionConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TransactionConsumeData.java new file mode 100644 index 0000000..cf9ee6d --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TransactionConsumeData.java @@ -0,0 +1,149 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import cn.felord.payment.wechat.enumeration.TradeState; +import cn.felord.payment.wechat.enumeration.TradeType; +import lombok.Data; + +import java.util.List; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class TransactionConsumeData { + + /** + * The Amount. + */ + private Amount amount; + /** + * The Appid. + */ + private String appid; + /** + * The Attach. + */ + private String attach; + /** + * The Bank type. + */ + private String bankType; + /** + * The Mchid. + */ + private String mchid; + /** + * The Out trade no. + */ + private String outTradeNo; + /** + * The Payer. + */ + private Payer payer; + /** + * The Promotion detail. + */ + private List promotionDetail; + /** + * The Scene info. + */ + private SceneInfo sceneInfo; + /** + * The Success time. + */ + private String successTime; + /** + * 在 1.0.0.RELEASE 直接返回了枚举字符串,1.0.2.RELEASE 中变更为枚举 + * @since 1.0.0.RELEASE + */ + private TradeState tradeState; + /** + * The Trade state desc. + */ + private String tradeStateDesc; + /** + * 在 1.0.0.RELEASE 直接返回了枚举字符串,1.0.2.RELEASE 中变更为枚举 + * @since 1.0.0.RELEASE + */ + private TradeType tradeType; + /** + * The Transaction id. + */ + private String transactionId; + + + /** + * The type Payer. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class Payer { + /** + * The Openid. + */ + private String openid; + } + + /** + * The type Scene info. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class SceneInfo { + /** + * The Device id. + */ + private String deviceId; + } + + /** + * The type Amount. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class Amount { + /** + * The Total. + */ + private Integer total; + /** + * The Payer total. + */ + private Integer payerTotal; + /** + * The Currency. + */ + private String currency; + /** + * The Payer currency. + */ + private String payerCurrency; + } + + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TransactionQueryParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TransactionQueryParams.java new file mode 100644 index 0000000..05096c1 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/TransactionQueryParams.java @@ -0,0 +1,31 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class TransactionQueryParams { + private String mchId; + private String transactionIdOrOutTradeNo; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.java new file mode 100644 index 0000000..b0f152e --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/UserCouponsQueryParams.java @@ -0,0 +1,86 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model; + +import lombok.Data; + +/** + * The type User coupons query params. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class UserCouponsQueryParams { + /** + * 用户公众号服务号标识 + */ + private String openId; + /** + * 公众服务号ID + */ + private String appId; + /** + * 批次号 + */ + private String stockId; + /** + * 券状态 null 不生效 + */ + private Status status; + /** + * 创建批次的商户号 + */ + private String creatorMchId; + /** + * 批次发放商户号 + */ + private String senderMchId; + /** + * 可用商户号 + */ + private String availableMchId; + /** + * 分页页码 + */ + private Integer offset = 0; + /** + * 分页大小 + */ + private Integer limit = 20; + + + /** + * The enum Status. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + public enum Status { + /** + * Sended status. + */ + SENDED, + /** + * Used status. + */ + USED + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineAmount.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineAmount.java new file mode 100644 index 0000000..f0f1474 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineAmount.java @@ -0,0 +1,46 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.combine; + + +import lombok.Data; + +/** + * 合单支付订单金额信息. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CombineAmount { + /** + * 符合ISO 4217标准的三位字母代码,必填,人民币:CNY 。 + * + * @since 1.0.0.RELEASE + */ + private String currency = "CNY"; + /** + * 子单金额,单位为分,必填 + *

+ * 境外场景下,标价金额要超过商户结算币种的最小单位金额,例如结算币种为美元,则标价金额必须大于1美分 + * + * @since 1.0.0.RELEASE + */ + private Long totalAmount; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.java new file mode 100644 index 0000000..1f41c56 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineCloseParams.java @@ -0,0 +1,74 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.combine; + +import lombok.Data; + +import java.util.List; + +/** + * 合单支付 关单参数. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CombineCloseParams { + /** + * 合单商户appid,必填 + */ + private String combineAppid; + /** + * 合单商户订单号,必填,商户侧需要保证同一商户下唯一 + */ + private String combineOutTradeNo; + /** + * 子单信息,必填,最多50单 + */ + private List subOrders; + + /** + * 关单-子单信息,最多50单. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class ClosingSubOrder { + /** + * 子单发起方商户号,必填,必须与发起方appid有绑定关系。 + */ + private String mchid; + + /** + * 子单商户订单号,必填,商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。 + */ + private String outTradeNo; + + /** + * 二级商户商户号,由微信支付生成并下发。 + *

+ * 服务商子商户的商户号,被合单方。 + *

+ * 直连商户不用传二级商户号。 + */ + private String subMchid; + + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineH5PayParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineH5PayParams.java new file mode 100644 index 0000000..2d131fb --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineH5PayParams.java @@ -0,0 +1,77 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.combine; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.OffsetDateTime; +import java.util.List; + +/** + * 合单支付 H5支付参数. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CombineH5PayParams { + + /** + * 合单商户appid,必填 + */ + private String combineAppid; + /** + * 合单商户号,必填 + */ + private String combineMchid; + /** + * 合单商户订单号,必填,商户侧需要保证同一商户下唯一 + */ + private String combineOutTradeNo; + /** + * 合单支付者信息,选填 + */ + private CombinePayerInfo combinePayerInfo; + /** + * 通知地址,必填,接收微信支付异步通知回调地址,通知url必须为直接可访问的URL,不能携带参数。 + *

+ * 合单支付需要独立的通知地址。 + */ + private String notifyUrl; + /** + * 合单支付场景信息描述,选填 + */ + private CombineH5SceneInfo sceneInfo; + /** + * 子单信息,必填,最多50单 + */ + private List subOrders; + /** + * 交易起始时间,选填 + */ + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8") + private OffsetDateTime timeStart; + /** + * 交易结束时间,选填 + */ + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8") + private OffsetDateTime timeExpire; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineH5SceneInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineH5SceneInfo.java new file mode 100644 index 0000000..c13f5b0 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineH5SceneInfo.java @@ -0,0 +1,37 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.combine; + +import cn.felord.payment.wechat.v3.model.H5Info; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 合单支付 H5场景信息. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class CombineH5SceneInfo extends CombineSceneInfo { + /** + * H5 支付信息. + */ + private H5Info h5Info; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombinePayParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombinePayParams.java new file mode 100644 index 0000000..9f6ad3c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombinePayParams.java @@ -0,0 +1,77 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.combine; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.OffsetDateTime; +import java.util.List; + +/** + * 合单支付 APP支付、JSAPI支付、小程序支付、Native支付参数. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CombinePayParams { + + /** + * 合单商户appid,必填 + */ + private String combineAppid; + /** + * 合单商户号,必填 + */ + private String combineMchid; + /** + * 合单商户订单号,必填,商户侧需要保证同一商户下唯一 + */ + private String combineOutTradeNo; + /** + * 合单支付者信息,选填 + */ + private CombinePayerInfo combinePayerInfo; + /** + * 通知地址,必填,接收微信支付异步通知回调地址,通知url必须为直接可访问的URL,不能携带参数。 + *

+ * 合单支付需要独立的通知地址。 + */ + private String notifyUrl; + /** + * 合单支付场景信息描述,选填 + */ + private CombineSceneInfo sceneInfo; + /** + * 子单信息,必填,最多50单 + */ + private List subOrders; + /** + * 交易起始时间,选填 + */ + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8") + private OffsetDateTime timeStart; + /** + * 交易结束时间,选填 + */ + @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8") + private OffsetDateTime timeExpire; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombinePayerInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombinePayerInfo.java new file mode 100644 index 0000000..638b68e --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombinePayerInfo.java @@ -0,0 +1,36 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.combine; + + +import lombok.Data; + +/** + * 合单支付,支付者信息. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CombinePayerInfo { + /** + * 使用合单appid获取的对应用户openid。是用户在商户appid下的唯一标识。 + */ + private String openid; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineSceneInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineSceneInfo.java new file mode 100644 index 0000000..b28e9c3 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineSceneInfo.java @@ -0,0 +1,39 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.combine; + +import lombok.Data; + +/** + * 合单支付场景信息. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CombineSceneInfo { + /** + * 商户设备号,选填。 + */ + private String deviceId; + /** + * 用户终端ip,必填。 + */ + private String payerClientIp; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineTransactionConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineTransactionConsumeData.java new file mode 100644 index 0000000..38682ce --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/CombineTransactionConsumeData.java @@ -0,0 +1,156 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.combine; + +import cn.felord.payment.wechat.enumeration.TradeState; +import cn.felord.payment.wechat.enumeration.TradeType; +import cn.felord.payment.wechat.v3.model.SceneInfo; +import lombok.Data; + +import java.util.List; + + +/** + * 合单支付回调解密数据. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class CombineTransactionConsumeData { + + /** + * 合单商户appid,即合单发起方的appid + */ + private String combineAppid; + + /** + * 合单商户号. + */ + private String combineMchid; + + /** + * 合单商户订单号. + */ + private String combineOutTradeNo; + + /** + * 支付者. + */ + private CombinePayerInfo combinePayerInfo; + + /** + * 场景信息,合单支付回调只返回device_id + */ + private SceneInfo sceneInfo; + + /** + * 合单支付回调子订单. + */ + private List subOrders; + + /** + * 合单支付回调子订单. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class SubOrderCallback { + + + /** + * 订单金额信息 + */ + private CombineAmount amount; + + /** + * 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用。 + */ + private String attach; + + /** + * 付款银行类型,参见开户银行对照表 + */ + private String bankType; + + /** + * 子单发起方商户号,必须与发起方Appid有绑定关系。(即电商平台mchid) + */ + private String mchid; + + /** + * 子单商户侧订单号 + */ + private String outTradeNo; + + /** + * 二级商户商户号,由微信支付生成并下发。 + * 服务商子商户的商户号,被合单方。直连商户不用传二级商户号。 + */ + private String subMchid; + + /** + * 支付完成时间 + */ + private String successTime; + + /** + * 交易状态 + */ + private TradeState tradeState; + + /** + * 交易类型 + */ + private TradeType tradeType; + + /** + * 微信支付侧订单号 + */ + private String transactionId; + + } + + /** + * 订单金额信息. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ + @Data + public static class CombineAmount { + /** + * 标价金额,单位为分. + */ + private Long totalAmount; + /** + * 标价币种. + */ + private String currency; + /** + * 现金支付金额. + */ + private Long payerAmount; + /** + * 现金支付币种. + */ + private String payerCurrency; + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/SubOrder.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/SubOrder.java new file mode 100644 index 0000000..011061d --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/combine/SubOrder.java @@ -0,0 +1,71 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.combine; + +import cn.felord.payment.wechat.v3.model.SettleInfo; +import lombok.Data; + +/** + * 子单信息,最多50单. + * + * @author felord.cn + * @since 1.0.0.RELEASE + */ +@Data +public class SubOrder { + /** + * 合单支付订单金额信息,必填。 + */ + private CombineAmount amount; + + /** + * 附加数据,必填,在查询API和支付通知中原样返回,可作为自定义参数使用。 + */ + private String attach; + + /** + * 商品描述,必填,需传入应用市场上的APP名字-实际商品名称,例如:天天爱消除-游戏充值。 + */ + private String description; + + /** + * 子单发起方商户号,必填,必须与发起方appid有绑定关系。 + */ + private String mchid; + + /** + * 子单商户订单号,必填,商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。 + */ + private String outTradeNo; + + /** + * 二级商户商户号,由微信支付生成并下发。 + *

+ * 服务商子商户的商户号,被合单方。 + *

+ * 直连商户不用传二级商户号。 + */ + private String subMchid; + + /** + * 结算信息,选填 + */ + private SettleInfo settleInfo; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardAcceptedConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardAcceptedConsumeData.java new file mode 100644 index 0000000..f649370 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardAcceptedConsumeData.java @@ -0,0 +1,185 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.discountcard; + +import cn.felord.payment.wechat.enumeration.ContractStatus; +import cn.felord.payment.wechat.enumeration.CountType; +import lombok.Data; + +import java.util.List; + +/** + * 用户领取微信先享卡通知解密 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class DiscountCardAcceptedConsumeData { + + /** + * 应用appid需要绑定微信商户平台 + */ + private String appid; + /** + * 先享卡ID,唯一标识一个先享卡 + */ + private String cardId; + /** + * 先享卡模板ID,唯一定义此资源的标识。创建模板后可获得 + */ + private String cardTemplateId; + /** + * 创建先享卡的时间 + */ + private String createTime; + /** + * 商户号 + */ + private String mchid; + /** + * 用户先享卡目标列表 + */ + private List objectives; + /** + * 用户标识,用户在{@code appid}下的唯一标识 + */ + private String openid; + /** + * 商户领卡号,商户在请求领卡预受理接口时传入的领卡请求号,同一个商户号下必须唯一,要求32个字符内,只能是数字、大小写字母_-|* + */ + private String outCardCode; + /** + * 用户先享卡优惠列表 + */ + private List rewards; + /** + * 邀请者用户标识 + *

+ * 微信用户在商户对应appid下的唯一标识。 + * 仅当此卡是通过“邀请有礼”渠道领卡时,会返回此字段;指此先享卡是通过此[邀请者]邀请领卡成功的。当此先享卡完成约定时,商户可给此[邀请者]下发应邀请有礼的奖励 + */ + private String sharerOpenid; + /** + * 先享卡的守约状态 + */ + private ContractStatus state; + /** + * 约定时间期限 + */ + private TimeRange timeRange; + + /** + * 用户先享卡目标列表 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class Objective { + + /** + * 目标数量 + *

+ * 履约目标需要完成的数量,必须大于0。 + */ + private Long count; + /** + * 目标描述 + */ + private String description; + /** + * 目标名称 + */ + private String name; + /** + * 目标id + */ + private String objectiveId; + /** + * 目标单位 + *

+ * 示例值:次 + */ + private String unit; + + } + + /** + * 用户先享卡优惠列表 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class Reward { + + /** + * 优惠金额 + *

+ * 1、优惠金额,此项优惠对应的优惠总金额,单位:分,必须大于0。 + * 2、此项优惠已享累计金额≤创建模板时配置的此项奖励的奖励金额, + * 例如:优惠为【满10元减3元优惠券4张】时,用户一次消费使用了2张优惠券,优惠金额为本次优惠总金额6元,优惠数量为本次使用优惠的优惠券数量2张 + */ + private Long amount; + /** + * 优惠数量 + */ + private Long count; + /** + * 优惠数量类型 + */ + private CountType countType; + /** + * 优惠描述 + */ + private String description; + /** + * 优惠名称 + */ + private String name; + /** + * 优惠ID + */ + private String rewardId; + /** + * 优惠单位,例如 “个” + */ + private String unit; + + } + + /** + * 先享卡约定时间期限 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class TimeRange { + /** + * 开始时间 + */ + private String betinTime; + /** + * 结束时间 + */ + private String endTime; + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardAgreementEndConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardAgreementEndConsumeData.java new file mode 100644 index 0000000..f185b9d --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardAgreementEndConsumeData.java @@ -0,0 +1,194 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.discountcard; + +import cn.felord.payment.wechat.enumeration.ContractStatus; +import cn.felord.payment.wechat.enumeration.CountType; +import cn.felord.payment.wechat.enumeration.UnfinishedReason; +import lombok.Data; + +import java.util.List; + +/** + * 微信支付先享卡用户守约状态变化通知解密 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class DiscountCardAgreementEndConsumeData { + /** + * 应用appid需要绑定微信商户平台 + */ + private String appid; + /** + * 先享卡ID,唯一标识一个先享卡 + */ + private String cardId; + /** + * 先享卡模板ID,唯一定义此资源的标识。创建模板后可获得 + */ + private String cardTemplateId; + /** + * 创建先享卡的时间 + */ + private String createTime; + /** + * 商户号 + */ + private String mchid; + /** + * 用户先享卡目标列表 + */ + private List objectives; + /** + * 用户标识,用户在{@code appid}下的唯一标识 + */ + private String openid; + /** + * 商户领卡号,商户在请求领卡预受理接口时传入的领卡请求号,同一个商户号下必须唯一,要求32个字符内,只能是数字、大小写字母_-|* + */ + private String outCardCode; + /** + * 用户先享卡优惠列表 + */ + private List rewards; + /** + * 先享卡的守约状态 + */ + private ContractStatus state; + /** + * 先享卡约定时间期限 + */ + private TimeRange timeRange; + /** + * 享受优惠总金额,单位为 “分” + */ + private Long totalAmount; + /** + * 未完成约定原因 + */ + private UnfinishedReason unfinishedReason; + + /** + * 目标列表属性 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class Objective { + + /** + * 目标数量 + *

+ * 履约目标需要完成的数量,必须大于0。 + */ + private Long count; + /** + * 目标描述 + */ + private String description; + /** + * 目标名称 + */ + private String name; + /** + * 用户先享卡目标完成纪录 + */ + private List objectiveCompletionRecords; + /** + * 目标id + */ + private String objectiveId; + /** + * 目标单位 + *

+ * 示例值:次 + */ + private String unit; + + } + + /** + * 先享卡约定时间期限 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class TimeRange { + /** + * 开始时间 + */ + private String betinTime; + /** + * 结束时间 + */ + private String endTime; + } + + /** + * 优惠列表属性 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class Reward { + + /** + * 优惠金额 + *

+ * 1、优惠金额,此项优惠对应的优惠总金额,单位:分,必须大于0。 + * 2、此项优惠已享累计金额≤创建模板时配置的此项奖励的奖励金额, + * 例如:优惠为【满10元减3元优惠券4张】时,用户一次消费使用了2张优惠券,优惠金额为本次优惠总金额6元,优惠数量为本次使用优惠的优惠券数量2张 + */ + private Long amount; + /** + * 优惠数量 + */ + private Long count; + /** + * 优惠数量类型 + */ + private CountType countType; + /** + * 优惠描述 + */ + private String description; + /** + * 优惠名称 + */ + private String name; + /** + * 优惠ID + */ + private String rewardId; + /** + * 优惠单位,例如 “个” + */ + private String unit; + /** + * 优惠使用记录列表 + */ + private List rewardUsageRecords; + + } + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardConsumer.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardConsumer.java new file mode 100644 index 0000000..c4ad7c9 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardConsumer.java @@ -0,0 +1,44 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.discountcard; + +import lombok.Data; + +import java.util.function.Consumer; + +/** + * 先享卡回调消费复合消费器 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class DiscountCardConsumer { + /** + * 用户领取微信先享卡通知解密 + */ + private Consumer acceptedConsumeDataConsumer; + /** + * 微信支付先享卡用户守约状态变化通知解密 + */ + private Consumer agreementEndConsumeDataConsumer; + /** + * 先享卡扣费状态变化通知解密 + */ + private Consumer cardUserPaidConsumeDataConsumer; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardPreRequestParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardPreRequestParams.java new file mode 100644 index 0000000..9029879 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardPreRequestParams.java @@ -0,0 +1,50 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.discountcard; + + +import lombok.Data; + +/** + * 预受理领卡请求参数 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class DiscountCardPreRequestParams { + + /** + * 商户领卡号,必传 + */ + private String outCardCode; + /** + * 先享卡模板ID,必传 + */ + private String cardTemplateId; + /** + * APPID,必传,自动从配置中注入 + */ + private String appid; + /** + * 通知商户URL,必传 + */ + private String notifyUrl; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardUserPaidConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardUserPaidConsumeData.java new file mode 100644 index 0000000..a1a31d2 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/DiscountCardUserPaidConsumeData.java @@ -0,0 +1,114 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.discountcard; + +import cn.felord.payment.wechat.enumeration.ContractStatus; +import cn.felord.payment.wechat.enumeration.UnfinishedReason; +import lombok.Data; + +/** + * 先享卡扣费状态变化通知解密 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class DiscountCardUserPaidConsumeData { + + /** + * 应用appid需要绑定微信商户平台 + */ + private String appid; + /** + * 先享卡ID,唯一标识一个先享卡 + */ + private String cardId; + /** + * 先享卡模板ID,唯一定义此资源的标识。创建模板后可获得 + */ + private String cardTemplateId; + /** + * 商户号 + */ + private String mchid; + /** + * 用户标识,用户在{@code appid}下的唯一标识 + */ + private String openid; + /** + * 商户领卡号,商户在请求领卡预受理接口时传入的领卡请求号,同一个商户号下必须唯一,要求32个字符内,只能是数字、大小写字母_-|* + */ + private String outCardCode; + /** + * 先享卡的守约状态 + */ + private ContractStatus state; + /** + * 享受优惠总金额,单位为 “分” + */ + private Long totalAmount; + /** + * 未完成约定原因 + */ + private UnfinishedReason unfinishedReason; + /** + * 用户退回优惠的付款信息 + */ + private PayInformation payInformation; + + /** + * 用户退回优惠的付款信息 + *

+ * 当状态为{@link ContractStatus#UNFINISHED}(用户未完成约定)时,且需要退回已享受的优惠金额时,返回此字段; + */ + @Data + public static class PayInformation { + + /** + * 付款金额,用户需要退回优惠而付款的金额,单位为:分; + */ + private Long payAmount; + /** + * 用户付款状态, + */ + private PayState payState; + /** + * 付款时间 + */ + private String payTime; + /** + * 微信支付订单号,仅在订单成功收款时才返回 + */ + private String transactionId; + } + + /** + * 付款状态 + * @since 1.0.3.RELEASE + */ + public enum PayState { + /** + * 付款中 + */ + PAYING, + /** + * 已付款 + */ + PAID + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/ObjectiveCompletionRecord.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/ObjectiveCompletionRecord.java new file mode 100644 index 0000000..08a449b --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/ObjectiveCompletionRecord.java @@ -0,0 +1,61 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.discountcard; + +import cn.felord.payment.wechat.enumeration.StrategyType; +import lombok.Data; + +/** + * 微信先享卡目标完成纪录 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class ObjectiveCompletionRecord { + + /** + * 目标完成数量 + */ + private Long completionCount; + /** + * 目标完成时间 + */ + private String completionTime; + /** + * 目标完成类型 + */ + private StrategyType completionType; + /** + * 目标完成描述 + */ + private String description; + /** + * 目标完成流水号 + */ + private String objectiveCompletionSerialNo; + /** + * 目标id + */ + private String objectiveId; + /** + * 备注说明 + */ + private String remark; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/RewardUsageRecord.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/RewardUsageRecord.java new file mode 100644 index 0000000..d247874 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/RewardUsageRecord.java @@ -0,0 +1,70 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.discountcard; + +import cn.felord.payment.wechat.enumeration.StrategyType; +import lombok.Data; + +/** + * 优惠使用纪录列表对象 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class RewardUsageRecord { + + /** + * 优惠金额 + * + *

    + *
  1. 优惠金额,用户此项本次享受的优惠对应的优惠总金额,单位:分,必须大于0。
  2. + *
  3. 子优惠已享金额累计≤创建模板时配置的此子优惠的价值金额 例如:优惠为【满10元减3元优惠券4张】时,用户一次消费使用了2张优惠券,优惠金额为本次优惠总金额6元,优惠数量为本次使用优惠的优惠券数量2张
  4. + *
+ */ + private Long amount; + /** + * 优惠使用描述 + */ + private String description; + /** + * 备注说明 + */ + private String remark; + /** + * 优惠Id + */ + private String rewardId; + /** + * 优惠使用纪录流水号 + */ + private String rewardUsageSerialNo; + /** + * 优惠使用数量 + */ + private Long usageCount; + /** + * 优惠使用时间 + */ + private String usageTime; + /** + * 优惠使用类型 + */ + private StrategyType usageType; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/UserRecordsParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/UserRecordsParams.java new file mode 100644 index 0000000..78a95a0 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/discountcard/UserRecordsParams.java @@ -0,0 +1,49 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.discountcard; + +import lombok.Data; + +import java.util.List; + +/** + * 增加用户记录请求参数 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class UserRecordsParams { + /** + * 商户领卡号,商户在请求领卡预受理接口时传入的领卡请求号,同一个商户号下必须唯一,要求32个字符内,只能是数字、大小写字母_-|* + */ + private String outCardCode; + /** + * 先享卡模板ID,唯一定义此资源的标识。创建模板后可获得 + */ + private String cardTemplateId; + /** + * 微信先享卡目标完成纪录 + */ + private List objectiveCompletionRecords; + /** + * 优惠使用纪录 + */ + private List rewardUsageRecords; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/CancelServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/CancelServiceOrderParams.java new file mode 100644 index 0000000..6849c1c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/CancelServiceOrderParams.java @@ -0,0 +1,47 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 取消支付分订单请求参数 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class CancelServiceOrderParams { + /** + * 商户服务订单号,必填 + */ + private String outOrderNo; + /** + * 与传入的商户号建立了支付绑定关系的appid,必填 + */ + private String appid; + /** + * 服务ID,必填 + */ + private String serviceId; + /** + * 取消原因,最长50个字符,必填 + */ + private String reason; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/CompleteServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/CompleteServiceOrderParams.java new file mode 100644 index 0000000..b37d697 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/CompleteServiceOrderParams.java @@ -0,0 +1,111 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +import java.util.List; + +/** + * 完结支付分订单请求参数 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class CompleteServiceOrderParams { + + /** + * 商户服务订单号,必填 + *

+ * 商户系统内部服务订单号(不是交易单号),要求此参数只能由数字、大小写字母_-|*组成,且在同一个商户号下唯一。详见[商户订单号]。 + */ + private String outOrderNo; + /** + * 与传入的商户号建立了支付绑定关系的appid,必填 + */ + private String appid; + /** + * 服务ID,必填 + *

+ * 该服务ID有本接口对应产品的权限。 + */ + private String serviceId; + /** + * 后付费项目,必填 + */ + private List postPayments; + /** + * 后付费商户优惠,选填 + */ + private List postDiscounts; + /** + * 总金额,单位分,必填 + *

+ * 不能超过完结订单时候的总金额,只能为整数,详见 支付金额。此参数需满足:总金额 =(修改后付费项目1…+修改后完结付费项目n)-(修改 后付费商户优惠项目1…+修改后付费商户优惠项目n) + */ + private Long totalAmount; + /** + * 服务时间段,条件选填 + *

+ * 服务时间范围,创建订单未填写服务结束时间,则完结的时候,服务结束时间必填 + * 如果传入,用户侧则显示此参数。 + */ + private TimeRange timeRange; + /** + * 服务位置,选填 + */ + private CompleteLocation location; + /** + * 微信支付服务分账标记,选填 + *

+ * 完结订单分账接口标记。分账开通流程,详见 分账 + * false:不分账,默认:false + * true:分账。 + */ + private Boolean profitSharing = Boolean.TRUE; + /** + * 订单优惠标记,选填 + *

+ * 代金券或立减金优惠的参数,说明详见代金券或立减金优惠 + */ + private String goodsTag; + + + /** + * 服务位置信息 + *

+ * 如果传入,用户侧则显示此参数。 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class CompleteLocation { + + /** + * 预计服务结束地点,条件选填。 + *

+ * 结束使用服务的地点,不超过50个字符,超出报错处理 。 创建订单传入了【服务开始地点】,此项才能填写 + * 【建议】 + * 1、预计结束地点为空时,实际结束地点与开始地点相同,不填写 + * 2、预计结束地点不为空时,实际结束地点与预计结束地点相同,不填写 + */ + private String endLocation; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/DirectCompleteServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/DirectCompleteServiceOrderParams.java new file mode 100644 index 0000000..30739f1 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/DirectCompleteServiceOrderParams.java @@ -0,0 +1,89 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +import java.util.List; + +/** + * 创单结单合并API请求参数 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class DirectCompleteServiceOrderParams { + /** + * The Appid. + */ + private String appid; + /** + * The Attach. + */ + private String attach; + /** + * The Goods tag. + */ + private String goodsTag; + /** + * The Location. + */ + private Location location; + /** + * The Notify url. + */ + private String notifyUrl; + /** + * The Openid. + */ + private String openid; + /** + * The Out order no. + */ + private String outOrderNo; + /** + * The Post discounts. + */ + private List postDiscounts; + /** + * The Post payments. + */ + private List postPayments; + /** + * The Profit sharing. + */ + private Boolean profitSharing; + /** + * The Service id. + */ + private String serviceId; + /** + * The Service introduction. + */ + private String serviceIntroduction; + /** + * The Time range. + */ + private TimeRange timeRange; + /** + * The Total amount. + */ + private Long totalAmount; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/Location.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/Location.java new file mode 100644 index 0000000..0db88c9 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/Location.java @@ -0,0 +1,51 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 服务位置信息 + *

+ * 如果传入,用户侧则显示此参数。 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class Location { + + /** + * 服务开始地点,选填。 + *

+ * 开始使用服务的地点,不超过50个字符,超出报错处理。 + * 【建议】 + * 1、用户下单时【未确定】服务结束地点,不填写。 + * 2、服务在同一地点开始和结束,不填写。 + * 3、用户下单时【已确定】服务结束地点,填写。 + */ + private String startLocation; + /** + * 预计服务结束地点,有开始地点时为必填。 + * + * 1、结束使用服务的地点,不超过50个字符,超出报错处理 。 + * 2、填写了服务开始地点,才能填写服务结束地点。 + */ + private String endLocation; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/ModifyServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/ModifyServiceOrderParams.java new file mode 100644 index 0000000..d5356e9 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/ModifyServiceOrderParams.java @@ -0,0 +1,70 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + + +import lombok.Data; + +import java.util.List; + +/** + * 修改微信支付分订单金额请求参数. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class ModifyServiceOrderParams { + + /** + * 商户服务订单号,必填 + *

+ * 商户系统内部服务订单号(不是交易单号),要求此参数只能由数字、大小写字母_-|*组成,且在同一个商户号下唯一。详见[商户订单号]。 + */ + private String outOrderNo; + /** + * 与传入的商户号建立了支付绑定关系的appid,必填 + */ + private String appid; + /** + * 服务ID,必填 + *

+ * 该服务ID有本接口对应产品的权限。需要与创建订单时保持一致。 + */ + private String serviceId; + /** + * 后付费项目,必填 + */ + private List postPayments; + /** + * 后付费商户优惠,选填 + */ + private List postDiscounts; + /** + * 总金额,单位分,必填 + * + * 不能超过完结订单时候的总金额,只能为整数,详见 支付金额。此参数需满足:总金额 =(修改后付费项目1…+修改后完结付费项目n)-(修改 后付费商户优惠项目1…+修改后付费商户优惠项目n) + */ + private Long totalAmount; + /** + * 取消原因,最长50个字符,必填 + */ + private String reason; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreConsumer.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreConsumer.java new file mode 100644 index 0000000..e5e971b --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreConsumer.java @@ -0,0 +1,40 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +import java.util.function.Consumer; + +/** + * 支付分回调复合消费器 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PayScoreConsumer { + /** + * 用户确认回调消费接口 + */ + private Consumer confirmConsumeDataConsumer; + /** + * 用户支付回调消费接口 + */ + private Consumer paidConsumeDataConsumer; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserConfirmConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserConfirmConsumeData.java new file mode 100644 index 0000000..0f3dc99 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserConfirmConsumeData.java @@ -0,0 +1,98 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +import java.util.List; + +/** + * 微信支付分用户确认订单回调解密. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PayScoreUserConfirmConsumeData { + + /** + * The Appid. + */ + private String appid; + /** + * The Attach. + */ + private String attach; + /** + * The Location. + */ + private Location location; + /** + * The Mchid. + */ + private String mchid; + /** + * The Openid. + */ + private String openid; + /** + * The Order id. + */ + private String orderId; + /** + * The Out order no. + */ + private String outOrderNo; + /** + * The Post discounts. + */ + private List postDiscounts; + /** + * The Post payments. + */ + private List postPayments; + /** + * The Risk fund. + */ + private RiskFund riskFund; + /** + * The Service id. + */ + private String serviceId; + /** + * The Service introduction. + */ + private String serviceIntroduction; + /** + * The State. + */ + private String state; + /** + * The State description. + */ + private String stateDescription; + /** + * The Time range. + */ + private TimeRange timeRange; + /** + * The Total amount. + */ + private String totalAmount; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserPaidConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserPaidConsumeData.java new file mode 100644 index 0000000..6dc6f85 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserPaidConsumeData.java @@ -0,0 +1,105 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +import java.util.List; + +/** + * 微信支付分支付成功回调解密 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PayScoreUserPaidConsumeData { + /** + * The Appid. + */ + private String appid; + /** + * The Attach. + */ + private String attach; + /** + * The Collection. + */ + private PaymentCollection collection; + /** + * The Location. + */ + private Location location; + /** + * The Mchid. + */ + private String mchid; + /** + * The Need collection. + */ + private Boolean needCollection; + /** + * The Notify url. + */ + private String notifyUrl; + /** + * The Openid. + */ + private String openid; + /** + * The Order id. + */ + private String orderId; + /** + * The Out order no. + */ + private String outOrderNo; + /** + * The Post discounts. + */ + private List postDiscounts; + /** + * The Post payments. + */ + private List postPayments; + /** + * The Risk fund. + */ + private RiskFund riskFund; + /** + * The Service id. + */ + private String serviceId; + /** + * The Service introduction. + */ + private String serviceIntroduction; + /** + * The State. + */ + private String state; + /** + * The Time range. + */ + private TimeRange timeRange; + /** + * The Total amount. + */ + private String totalAmount; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserPermissionConsumeData.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserPermissionConsumeData.java new file mode 100644 index 0000000..f70e445 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayScoreUserPermissionConsumeData.java @@ -0,0 +1,70 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + + +import lombok.Data; + +/** + * 授权、解除授权服务回调解密. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PayScoreUserPermissionConsumeData { + + /** + * 是否是解除授权,此参数并非微信返回参数 + * + * 是:true,不是:false + * + * 用来判断是授权还是解除授权 + */ + private boolean closed; + /** + * The Appid. + */ + private String appid; + /** + * The Mchid. + */ + private String mchid; + /** + * The Openid. + */ + private String openid; + /** + * The Openorclose time. + */ + private String openorcloseTime; + /** + * 只在 微信支付分授权回调中返回 + */ + private String outRequestNo; + /** + * The Service id. + */ + private String serviceId; + /** + * The User service status. + */ + private String userServiceStatus; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayServiceOrderParams.java new file mode 100644 index 0000000..a66bc58 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PayServiceOrderParams.java @@ -0,0 +1,48 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 商户发起催收扣款请求参数. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PayServiceOrderParams { + + /** + * 商户服务订单号,必填 + *

+ * 商户系统内部服务订单号(不是交易单号),要求此参数只能由数字、大小写字母_-|*组成,且在同一个商户号下唯一。详见[商户订单号]。 + */ + private String outOrderNo; + /** + * 与传入的商户号建立了支付绑定关系的appid,必填 + */ + private String appid; + /** + * 服务ID,必填 + *

+ * 该服务ID有本接口对应产品的权限。 + */ + private String serviceId; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PaymentCollection.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PaymentCollection.java new file mode 100644 index 0000000..a612b6a --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PaymentCollection.java @@ -0,0 +1,91 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + + +import lombok.Data; + +import java.util.List; + +/** + * 微信支付分支付成功回调,收款信息,非0元完结后返回 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PaymentCollection { + + /** + * The Details. + */ + private List details; + /** + * The Paid amount. + */ + private Long paidAmount; + /** + * The Paying amount. + */ + private Long payingAmount; + /** + * The State. + */ + private String state; + /** + * The Total amount. + */ + private Long totalAmount; + + /** + * 收款明细列表 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ + @Data + public static class Detail { + + /** + * The Amount. + */ + private Long amount; + /** + * The Paid time. + */ + private String paidTime; + /** + * The Paid type. + */ + private String paidType; + /** + * The Promotion detail. + */ + private List promotionDetail; + /** + * The Seq. + */ + private Long seq; + /** + * The Transaction id. + */ + private String transactionId; + + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PermissionsAuthCodeParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PermissionsAuthCodeParams.java new file mode 100644 index 0000000..110cc08 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PermissionsAuthCodeParams.java @@ -0,0 +1,47 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 适用于以下API: + *

+ * 查询与用户授权记录(授权协议号)API + *

+ * 解除用户授权关系(授权协议号)API + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PermissionsAuthCodeParams { + /** + * 服务ID,必填 + */ + private String serviceId; + /** + * 授权协议号,必填 + */ + private String authorizationCode; + /** + * 仅仅适用于解除用户授权关系(授权协议号)API + */ + private String reason; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PermissionsOpenIdParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PermissionsOpenIdParams.java new file mode 100644 index 0000000..3b46616 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PermissionsOpenIdParams.java @@ -0,0 +1,53 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 适用于以下API: + *

+ * 查询与用户授权记录(openid)API + *

+ * 解除用户授权关系(openid)API + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PermissionsOpenIdParams { + /** + * openid,必填 + */ + private String openid; + /** + * 仅仅适用于解除用户授权关系(openid)API + */ + private String appid; + /** + * 服务ID,必填 + *

+ * 该服务ID有本接口对应产品的权限。 + */ + private String serviceId; + /** + * 仅仅适用于解除用户授权关系(openid)API + */ + private String reason; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PostDiscount.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PostDiscount.java new file mode 100644 index 0000000..bc05013 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PostDiscount.java @@ -0,0 +1,58 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 后付费商户优惠,选填 + *

+ * 最多包含30条商户优惠。如果传入,用户侧则显示此参数。 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PostDiscount { + + /** + * 优惠名称,条件选填 + * + * 优惠名称说明;name和description若填写,则必须同时填写,优惠名称不可重复描述。 + */ + private String name; + /** + * 优惠说明,条件选填 + * + * 优惠使用条件说明。{@link PostDiscount#name}若填写,则必须同时填写。 + */ + private String description; + /** + * 总金额,单位分,必填 + * todo 新增没有此字段,修改必填,感觉不太符合常理 + */ + private Long amount; + /** + * 优惠数量,选填。 + *

+ * 优惠的数量。 + * 特殊规则:数量限制100,不填时默认1。 + */ + private Long count = 1L; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PostPayment.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PostPayment.java new file mode 100644 index 0000000..4b38060 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PostPayment.java @@ -0,0 +1,59 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 后付费项目,选填 + *

+ * 最多包含100条付费项目。如果传入,用户侧则显示此参数。 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PostPayment { + /** + * 付费项目名称,选填。 修改订单必填 + *

+ * 相同订单号下不能出现相同的付费项目名称,当参数长度超过20个字符时,报错处理。 + */ + private String name; + /** + * 金额,条件选填。修改订单必填 + *

+ * 此付费项目总金额,大于等于0,单位为分,等于0时代表不需要扣费,只能为整数,详见支付金额。如果填写了“付费项目名称”,则amount或description必须填写其一,或都填。 + */ + private Long amount; + /** + * 计费说明,条件选填。 + *

+ * 描述计费规则,不超过30个字符,超出报错处理。如果填写了“付费项目名称”,则amount或description必须填写其一,或都填。 + */ + private String description; + /** + * 付费数量,选填。 + *

+ * 付费项目的数量。 + * 特殊规则:数量限制100,不填时默认1。 + */ + private Long count = 1L; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PromotionDetail.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PromotionDetail.java new file mode 100644 index 0000000..d6c573e --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/PromotionDetail.java @@ -0,0 +1,110 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + + +import lombok.Data; + +import java.util.List; + +/** + * 微信支付分支付成功回调,优惠功能 + * + * 注:针对2020年5月27日10:00:00以后完结的订单生效 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class PromotionDetail { + + /** + * The Amount. + */ + private Long amount; + /** + * The Coupon id. + */ + private String couponId; + /** + * The Currency. + */ + private String currency; + /** + * The Goods detail. + */ + private List goodsDetail; + /** + * The Merchant contribute. + */ + private Long merchantContribute; + /** + * The Name. + */ + private String name; + /** + * The Other contribute. + */ + private Long otherContribute; + /** + * The Scope. + */ + private String scope; + /** + * The Stock id. + */ + private String stockId; + /** + * The Type. + */ + private String type; + /** + * The Wechatpay contribute. + */ + private Long wechatpayContribute; + + /** + * The type Goods detail. + */ + @Data + public static class GoodsDetail { + + /** + * The Discount amount. + */ + private Long discountAmount; + /** + * The Goods id. + */ + private String goodsId; + /** + * The Goods remark. + */ + private String goodsRemark; + /** + * The Quantity. + */ + private Long quantity; + /** + * The Unit price. + */ + private Long unitPrice; + + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/QueryServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/QueryServiceOrderParams.java new file mode 100644 index 0000000..c424e69 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/QueryServiceOrderParams.java @@ -0,0 +1,43 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 查询支付分订单请求参数 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class QueryServiceOrderParams { + /** + * 商户服务订单号,同{@link QueryServiceOrderParams#queryId} 二选一,而且不能同时为null + */ + private String outOrderNo; + /** + * 回跳查询ID,同{@link QueryServiceOrderParams#outOrderNo} 二选一,而且不能同时为null + */ + private String queryId; + /** + * 服务ID,必填 + */ + private String serviceId; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/RiskFund.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/RiskFund.java new file mode 100644 index 0000000..12935e8 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/RiskFund.java @@ -0,0 +1,78 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 订单风险金信息,必填 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class RiskFund { + + /** + * 风险金名称,必填 + */ + private Type name; + /** + * 风险金额,必填 + *

+ * 1、数字,必须>0(单位分)。 + * 2、风险金额>=每个服务ID的风险金额上限。 + * 3、当商户优惠字段为空时,付费项目总金额≤服务ID的风险金额上限 (未填写金额的付费项目,视为该付费项目金额为0)。 + * 4、完结金额可大于、小于或等于风险金额。详细可见QA 关于订单风险金额问题 + */ + private Long amount; + /** + * 风险说明,选填 + *

+ * 文字,不超过30个字。 + */ + private String description; + + + /** + * 风险金类型 + */ + public enum Type { + /** + * 押金 + */ + DEPOSIT, + /** + * 预付款 + */ + ADVANCE, + /** + * 保证金 + */ + CASH_DEPOSIT, + /** + * 预估订单费用 + *

+ * 【先享模式】(评估不通过不可使用服务) + */ + ESTIMATE_ORDER_COST + } + + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/ServiceOrderPermissionParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/ServiceOrderPermissionParams.java new file mode 100644 index 0000000..591cf9c --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/ServiceOrderPermissionParams.java @@ -0,0 +1,51 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 商户预授权API请求参数 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class ServiceOrderPermissionParams { + + /** + * 服务id,必填 + */ + private String serviceId; + /** + * 服务商申请的公众号或移动应用APPID,必填 + */ + private String appid; + /** + * 授权协议号,必填 + *

+ * 预授权成功时的授权协议号,要求此参数只能由数字、大小写字母_-*组成,且在同一个商户号下唯一。详见[商户订单号]。 + */ + private String authorizationCode; + /** + * 商户接收授权回调通知的地址,选填 + */ + private String notifyUrl; + +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/SyncServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/SyncServiceOrderParams.java new file mode 100644 index 0000000..0f30231 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/SyncServiceOrderParams.java @@ -0,0 +1,82 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 同步服务订单信息请求参数. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class SyncServiceOrderParams { + + /** + * 商户服务订单号,必填 + *

+ * 商户系统内部服务订单号(不是交易单号),要求此参数只能由数字、大小写字母_-|*组成,且在同一个商户号下唯一。详见[商户订单号]。 + */ + private String outOrderNo; + /** + * 与传入的商户号建立了支付绑定关系的appid,必填 + */ + private String appid; + /** + * 服务ID,必填 + *

+ * 该服务ID有本接口对应产品的权限。与订单要保持一致。 + */ + private String serviceId; + /** + * 场景类型,必填,场景类型为“Order_Paid”,字符串表示“订单收款成功” 。 + */ + private String type = "Order_Paid"; + + /** + * 内容信息详情,场景类型为Order_Paid时,为必填项。 + */ + private SyncDetail detail; + + + /** + * 内容信息详情 + */ + @Data + public static class SyncDetail{ + /** + * 收款成功时间 + *

+ * 支付成功时间,支持两种格式:yyyyMMddHHmmss和yyyyMMdd + * ● 传入20091225091010表示2009年12月25日9点10分10秒。 + * ● 传入20091225默认认为时间为2009年12月25日0点0分0秒。 + * 用户通过其他方式付款成功的实际时间需满足条件:服务开始时间<调用商户完结订单接口的时间<用户通过其他方式付款成功的实际时间≤商户调用支付分订单同步接口的时间。 + * 【服务开始时间】 + * 1、当完结订单有填写【实际服务开始时间】时,【服务开始时间】=完结订单【实际服务开始时间】。 + * 2、当完结订单未填写【实际服务开始时间】时,【服务开始时间】=创建订单【服务开始时间】 + * 场景类型为Order_Paid时,必填。 + * 支持两种格式:yyyyMMddHHmmss和yyyyMMdd + * ● 传入20091225091010表示2009年12月25日9点10分10秒。 + * ● 传入20091225表示时间为2009年12月25日23点59分59秒。 + * 注意:微信支付分会根据此时间更新用户侧的守约记录、负面记录信息;因此请务必如实填写用户实际付款成功时间,以免造成不必要的客诉。 + */ + private String paidTime; + } +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/TimeRange.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/TimeRange.java new file mode 100644 index 0000000..3166400 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/TimeRange.java @@ -0,0 +1,83 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 服务时间段,必填 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class TimeRange { + /** + * 服务开始时间 + *

+ * 用户端展示用途。 + * 用户下单时确认的服务开始时间(比如用户今天下单,明天开始接受服务,这里指的是明天的服务开始时间)。 + *

+ * 支持三种格式:yyyyMMddHHmmss、yyyyMMdd和 OnAccept + *

+ * ● 传入20091225091010表示2009年12月25日9点10分10秒。 + *

+ * ● 传入20091225默认认为时间为2009年12月25日 + *

+ * ● 传入OnAccept表示用户确认订单成功时间为【服务开始时间】。 + *

+ * 根据传入时间精准度进行校验 + *

+ * 1)若传入时间精准到秒,则校验精准到秒:【服务开始时间】>【商户调用创建订单接口时间 + *

+ * 2)若传入时间精准到日,则校验精准到日:【服务开始时间】>=【商户调用创建订单接口时间】 + */ + private String startTime; + /** + * 服务开始时间备注说明,服务开始时间有填时,可填写服务开始时间备注,不超过20个字符,超出报错处理。 + */ + private String startTimeRemark; + /** + * 用户端展示用途,支持两种格式:yyyyMMddHHmmss和yyyyMMdd + * ● 传入20091225091010表示2009年12月25日9点10分10秒。 + *

+ * ● 传入20091225默认认为时间为2009年12月25日 + * 根据传入时间精准度进行校验 + *

+ * 1、若传入时间精准到秒,则校验精准到秒: + *

+ * 1)【预计服务结束时间】>【服务开始时间】 + *

+ * 2)【预计服务结束时间】>【商户调用接口时间+1分钟】 + *

+ * 2、若传入时间精准到日,则校验精准到日: + *

+ * 1)【预计服务结束时间】>=【服务开始时间】 + *

+ * 2)【预计服务结束时间】>=【商户调用接口时间】 + * 【建议】 + * 1、用户下单时【未确定】服务结束时间,不填写。 + * 2、用户下单时【已确定】服务结束时间,填写。 + */ + private String endTime; + /** + * 预计服务结束时间备注说明,预计服务结束时间有填时,可填写预计服务结束时间备注,不超过20个字符,超出报错处理。 + */ + private String endTimeRemark; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/UserServiceOrderParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/UserServiceOrderParams.java new file mode 100644 index 0000000..69b9c52 --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/UserServiceOrderParams.java @@ -0,0 +1,102 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + + +import lombok.Data; + +import java.util.List; + +/** + * 创建支付分订单请求参数. + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class UserServiceOrderParams { + + /** + * 商户服务订单号,必填 + *

+ * 商户系统内部服务订单号(不是交易单号),要求此参数只能由数字、大小写字母_-|*组成,且在同一个商户号下唯一。详见[商户订单号]。 + */ + private String outOrderNo; + /** + * 与传入的商户号建立了支付绑定关系的appid,必填 + */ + private String appid; + /** + * 服务ID,必填 + *

+ * 该服务ID有本接口对应产品的权限。 + */ + private String serviceId; + /** + * 服务信息,必填 + *

+ * 用于介绍本订单所提供的服务 ,当参数长度超过20个字符时,报错处理。 + */ + private String serviceIntroduction; + /** + * 后付费项目,选填 + */ + private List postPayments; + /** + * 后付费商户优惠,选填 + */ + private List postDiscounts; + /** + * 服务时间段,必填 + */ + private TimeRange timeRange; + /** + * 服务位置,选填 + */ + private Location location; + /** + * 订单风险金,必填 + */ + private RiskFund riskFund; + /** + * 商户数据包,选填 + *

+ * 商户数据包可存放本订单所需信息,需要先urlencode后传入。 当商户数据包总长度超出256字符时,报错处理。 + */ + private String attach; + /** + * 商户回调地址,必填 + */ + private String notifyUrl; + /** + * 微信用户在商户对应appid下的唯一标识,条件选填 + *

+ * 免确认订单:必填 + * 需确认订单:不填 + */ + private String openid; + /** + * 是否需要用户确认,选填 + *

+ * false:免确认订单 + * true:需确认订单 + * 默认值true + */ + private Boolean needUserConfirm = Boolean.TRUE; +} diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/UserServiceStateParams.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/UserServiceStateParams.java new file mode 100644 index 0000000..fd35b5f --- /dev/null +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/model/payscore/UserServiceStateParams.java @@ -0,0 +1,42 @@ +/* + * + * Copyright 2019-2020 felord.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * Website: + * https://felord.cn + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package cn.felord.payment.wechat.v3.model.payscore; + +import lombok.Data; + +/** + * 查询用户授权状态参数. + *

+ * {@code appid} 从对应租户的配置中自动注入。 + * + * @author felord.cn + * @since 1.0.2.RELEASE + */ +@Data +public class UserServiceStateParams { + /** + * 微信支付分 服务ID , 需要微信侧运营操作绑定到商户。 + */ + private String serviceId; + /** + * 微信用户在商户对应appid下的唯一标识。 + */ + private String openId; + +} diff --git a/payment-spring-boot-starter/pom.xml b/payment-spring-boot-starter/pom.xml new file mode 100644 index 0000000..116f47e --- /dev/null +++ b/payment-spring-boot-starter/pom.xml @@ -0,0 +1,40 @@ + + + + cn.felord + payment-spring-boot + 1.0.3.RELEASE + + + payment-spring-boot-starter + 1.0.3.RELEASE + jar + 4.0.0 + + + + 1.8 + 1.8 + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter + + + cn.felord + payment-spring-boot-autoconfigure + + + org.bouncycastle + bcprov-jdk15to18 + + + + \ No newline at end of file diff --git a/payment-spring-boot-starter/src/main/resources/LICENSE b/payment-spring-boot-starter/src/main/resources/LICENSE new file mode 100644 index 0000000..f49a4e1 --- /dev/null +++ b/payment-spring-boot-starter/src/main/resources/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..31ddea9 --- /dev/null +++ b/pom.xml @@ -0,0 +1,182 @@ + + + cn.felord + payment-spring-boot + 1.0.3.RELEASE + pom + 4.0.0 + + payment-spring-boot + wechat-pay and alipay sdk + https://github.com/NotFound403/payment-spring-boot + + + + Apache License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + A business-friendly OSS license + + + + + + felord + felord@qq.com + felord.cn + + + + + payment-spring-boot-1.0.0.RELEASE + https://github.com/NotFound403/payment-spring-boot + scm:git:https://github.com/NotFound403/payment-spring-boot.git + scm:git:https://github.com/NotFound403/payment-spring-boot.git + + + + + payment-spring-boot-autoconfigure + payment-spring-boot-starter + + + + 1.8 + 1.8 + UTF-8 + UTF-8 + 1.8 + 2.4.1 + 4.10.167.ALL + 1.0.0.RELEASE + 1.18.12 + 2.9.10 + 1.66 + + + + + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2 + + + sonatype-nexus-snapshots + Nexus Snapshot Repository + https://oss.sonatype.org/content/repositories/snapshots + + + + + + + org.springframework.boot + spring-boot-starter + ${spring-boot.version} + + + org.springframework.boot + spring-boot-autoconfigure + ${spring-boot.version} + + + org.springframework.boot + spring-boot-configuration-processor + ${spring-boot.version} + + + org.springframework.boot + spring-boot-starter-logging + ${spring-boot.version} + + + org.springframework.boot + spring-boot-starter-web + ${spring-boot.version} + + + com.alipay.sdk + alipay-sdk-java + ${aliy-pay-sdk.version} + + + org.projectlombok + lombok + ${lombok.verison} + + + org.bouncycastle + bcprov-jdk15to18 + ${bcprov.version} + + + cn.felord + payment-spring-boot-autoconfigure + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.1.0 + + + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.2.0 + + private + true + UTF-8 + UTF-8 + UTF-8 + + + + compile + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + verify + + sign + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + sonatype-nexus-staging + https://oss.sonatype.org/ + + + + + \ No newline at end of file