From f83c20d9a63e8d23a6ae5801cc97359f662c87b3 Mon Sep 17 00:00:00 2001 From: "felord.cn" Date: Thu, 10 Dec 2020 00:15:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 158 +---------------------------------------------- docs/_sidebar.md | 1 + 2 files changed, 4 insertions(+), 155 deletions(-) diff --git a/README.md b/README.md index b2a8ef4..0f6ab4a 100644 --- a/README.md +++ b/README.md @@ -1,159 +1,7 @@ # 移动支付 Spring Boot 组件 为了满足业务中出现app支付、公众号支付、小程序支付等多appid并存的场景,对原有的进行了增强开发出了多租户版本。 -## 支持类型 +# 文档地址 -- [x] **微信支付V3** 全量支持,并支持多租户。 -- [x] **支付宝** 集成SDK,作简单适配。 -## 进度 -- 微信支付营销-代金券 `WechatMarketingFavorApi` 100% -- 微信支付 支付功能-普通支付直连模式 `WechatDirectPayApi` 100% - -## 采用技术 -- Spring -- Jackson -- Ali-pay-sdk -## 使用方法 -### 集成 -以**Spring Boot Starter**的形式集成到项目中。 - -```xml - - cn.felord - payment-spring-boot-starter - 1.0.0.RELEASE - -``` -### 配置 -#### 微信支付 -在Spring Boot项目中的`application.yaml`中配置`wechat.pay`相关参数。 -```yaml -wechat: - pay: - v3: -# 租户id - : -# 应用appId 必填 - app-id: xxxxxxxx -# api 密钥 必填 - app-secret: xxxxxxxxxxx -# api v3 密钥 必填 - app-v3-secret: xxxxxxxx -# 微信支付商户号 必填 - mch-id: xxxxxxx -# 合作商 选填 - partner-key: -# 商户服务器域名 用于回调 需要放开回调接口的安全策略 必填 - domain: https://xxxx.xxx.com -# 商户 api 证书 必填 - cert-path: apiclient_cert.p12 - -``` -然后启用`@EnableWechatPay`注解: -```java -@EnableMobilePay -@Configuration -public class PayConfig { -} -``` -> 请注意:只有`wechat.pay.v3.app-id`设置了有效值才能启用下面的API。 -##### API使用 -微信支付V3开放接口引入: -```java - @Autowired - WechatApiProvider wechatApiProvider; -``` -###### V3 -例如V3 查询商户下的优惠券 - -```java - // 查询商户下的优惠券 - @Test - public void v3MchStocks() { - // 配置文件中对应的tenantID: - String tenantId =; - StocksQueryParams params = new StocksQueryParams(); - params.setOffset(0); - params.setLimit(10); - WechatResponseEntity objectNodeWechatResponseEntity = wechatApiProvider.favorApi(tenantId).queryStocksByMch(params); - System.out.println("objectNodeWechatResponseEntity = " + objectNodeWechatResponseEntity); - } -``` - - -#### 支付宝 -##### 使用须知 -请注意因为未来**SHA1withRSA**将被淘汰,因此采用最新的**SHA256withRSA**证书,旧的模式将不提供支持。步骤如下: - -1.使用支付宝开发助手申请CSR文件 - -![先申请密钥对,再申请csr](docs/img/csr.png) -申请成功后看文件说明: - -![](docs/img/file_info.png) - -2.上传CSR设置证书 - -![](docs/img/set.png) - -上传成功后需要下载证书,和配置的对应关系为: - -![](docs/img/cert_path.png) -3. 其它开发平台商户平台的配置,参考支付宝接入文档。 -##### 项目开发配置 -在Spring Boot项目中的`application.yaml`中配置`ali.pay`相关参数。 -```yaml -ali: - pay: - v1: -# 可以替换为沙箱 - server-url: https://openapi.alipaydev.com/gateway.do -# 蚂蚁开放平台申请并认证的应用appId - app-id: 2016102700769563 - 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。 -##### API的使用 - -引入接口: -```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()); - } -``` -打印响应体: -```json -{"alipay_marketing_campaign_cash_create_response":{"code":"40004","msg":"Business Failed","sub_code":"isv.UNKNOW_SYSTEM_ERROR","sub_msg":"系统繁忙,请稍后再试"},"alipay_cert_sn":"e65893247c520d9d46db3000158505ee","sign":"M7gyi6ZwnRoHmdzd1IIxLc+XEE1pCx6ptOyQP4aRGMc01bJebNL7PbMpfU7TcB75KHmk3Oor2fYZfVEB7+5gxV9YwMuW3QtZbyACw3Gzt7wz4D1YCXkQD9PRvSsgw8xgNL+WnZxEI2yFdSp47Mc/Um73M101zFeo2dYKYXyVRdsGxnipY8fZs0JaXlX5OoROfHDcbvzBDjQyernspIoFoNiAwpaBwyQcEzh8V34ca4Rep/LSyI4N4VtU0n2nq3dO0Jor36n0o4j0QobWSE3c8StkVjbdP5XJB+adE51MUmh7xDdixQXE2fTRKw5wYlBO9O3bpF/uw78hWW/y3JwG9Q=="} -``` -## CHANGELOG -### 1.0.0.RELEASE - -- 支持微信支付V3、支付宝支付 -- 微信支付多租户 \ No newline at end of file +[payment-spring-boot 文档](https://notfound403.github.io/payment-spring-boot) + \ No newline at end of file diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 6e10141..c9d72cf 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1 +1,2 @@ +* [项目简介](README.md) * [快速接入](quick_start.md) \ No newline at end of file