提交 8e5f20d0 编写于 作者: J Javen205

📝 更新文档

上级 b647b491
......@@ -128,6 +128,7 @@ function getGuideSidebar (groupA, groupB,groupC,groupD,groupE,groupF,groupG,grou
children: [
'alipay/',
'alipay/init',
'alipay/extension',
]
},
{
......
......@@ -7,19 +7,19 @@ module.exports = [
text: '加入VIP',
link: '/guide/donate/',
},
{
text: '全民云计算',
items: [
{
text: '云主机低至2折',
link: 'https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=b1hkzv2x',
},
{
text: '云服务器首年 88',
link: 'https://cloud.tencent.com/act/cps/redirect?redirect=1048&cps_key=a21676d22e4b11a883893d54e158c1d3&from=console',
},
]
},
// {
// text: '全民云计算',
// items: [
// {
// text: '云主机低至2折',
// link: 'https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=b1hkzv2x',
// },
// {
// text: '云服务器首年 88',
// link: 'https://cloud.tencent.com/act/cps/redirect?redirect=1048&cps_key=a21676d22e4b11a883893d54e158c1d3&from=console',
// },
// ]
// },
{
text: 'JavaDoc 文档',
link: 'https://apidoc.gitee.com/javen205/IJPay',
......@@ -57,10 +57,10 @@ module.exports = [
},
]
},
{
text: '1.x 文档',
link: 'https://ijpay.javen.dev/doc/opensource/IJPay.html',
},
// {
// text: '1.x 文档',
// link: 'https://ijpay.javen.dev/doc/opensource/IJPay.html',
// },
{
text: 'Gitee',
link: 'https://gitee.com/javen205/IJPay',
......
......@@ -31,12 +31,14 @@ footer: Apache License 2.0 | Copyright © 2019-present Javen
<dependency>
<groupId>com.github.javen205</groupId>
<artifactId>IJPay-All</artifactId>
<version>latest-version</version>
<version>latest-version</version>
</dependency>
```
::: tip
当然,不同的支付方式也可以单独添加相关依赖 [了解更多](./guide/maven.md)
2.3.2 版本开始 IJPay-All 中不会自动下载银联支付相关依赖,如有银联支付需求请单独手动添加 IJPay-UnionPay 相关依赖。
当然,不同的支付方式也可以单独添加相关依赖 [了解更多](./guide/maven.md)
:::
### 全民云计算
......@@ -75,21 +77,21 @@ export default {
this.$notify({
offset: 50,
title: '请为 IJPay 投票',
message: '2019 年度中国开源软件评选来了!希望你能够为 IJPay 投一票(点击消息再点击「投票赢奖品」) 截止日期:2019 年 12 月 6 日 24 点',
title: 'IJPay VIP 服务',
message: 'IJPay VIP 服务可提供一对一在线答疑,加入 VIP 为您节省更多时间去陪恋人、家人以及朋友 :) 交流群:723992875',
type: 'success',
showClose: false,
showClose: true,
duration: 0,
onClick: function() {
// Notification.closeAll();
window.open("https://www.oschina.net/p/ijpay");
window.open("https://javen205.gitee.io/ijpay/guide/donate/");
}
});
this.$notify({
offset: 200,
title: 'TNWX 微信系开发脚手架,Start 支持一下',
message: '同时支持微信公众号、微信支付、微信小游戏(微信小程序、微信企业号敬请期待)。可接入到任何 Node.js 框架(Express、Nest、Egg、Koa 等)',
title: 'TNWX 微信系开发脚手架',
message: '同时支持微信公众号、微信小程序、微信企业号、微信支付、微信小游戏。可接入到任何 Node.js 框架(Express、Nest、Egg、Koa 等)',
type: 'success',
showClose: true,
duration: 0,
......
# 扩展接口
## 说明
支付宝支付中涉及到的接口非常多,如果 IJPay 中有没有实现某个接口大家可自行扩展,同时也欢迎 PR
## 封装 AliPayClient 常用的执行方法
如何使用? 请参考源码或者看下方示例
```java ()
public static <T extends AlipayResponse> T execute(AlipayRequest<T> request) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request);
}
public static <T extends AlipayResponse> T execute(AlipayRequest<T> request, String authToken) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, authToken);
}
public static <T extends AlipayResponse> T execute(AlipayRequest<T> request, String accessToken, String appAuthToken) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, accessToken, appAuthToken);
}
public static <T extends AlipayResponse> T execute(AlipayRequest<T> request, String accessToken, String appAuthToken, String targetAppId) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, accessToken, appAuthToken, targetAppId);
}
public static <T extends AlipayResponse> T pageExecute(AlipayRequest<T> request) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().pageExecute(request);
}
public static <T extends AlipayResponse> T pageExecute(AlipayRequest<T> request, String method) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().pageExecute(request, method);
}
public static <T extends AlipayResponse> T sdkExecute(AlipayRequest<T> request) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().sdkExecute(request);
}
public static BatchAlipayResponse execute(BatchAlipayRequest request) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request);
}
public static <T extends AlipayResponse> T certificateExecute(AlipayRequest<T> request) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().certificateExecute(request);
}
public static <T extends AlipayResponse> T certificateExecute(AlipayRequest<T> request, String authToken) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().certificateExecute(request, authToken);
}
public static <T extends AlipayResponse> T certificateExecute(AlipayRequest<T> request, String accessToken, String appAuthToken) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().certificateExecute(request, accessToken, appAuthToken);
}
public static <T extends AlipayResponse> T certificateExecute(AlipayRequest<T> request, String accessToken, String appAuthToken, String targetAppId) throws AlipayApiException {
return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().certificateExecute(request, accessToken, appAuthToken, targetAppId);
}
```
## 账户余额查询
官方文档 [API 列表](https://docs.open.alipay.com/309/106237/)
```java ()
/**
* 支付宝资金账户资产查询接口
*
* @param model model {@link AlipayFundAccountQueryModel}
* @param appAuthToken 应用授权token
* @return {@link AlipayFundAccountQueryResponse}
* @throws AlipayApiException 支付宝 Api 异常
*/
public static AlipayFundAccountQueryResponse accountQueryToResponse(AlipayFundAccountQueryModel model, String appAuthToken) throws AlipayApiException {
AlipayFundAccountQueryRequest request = new AlipayFundAccountQueryRequest();
request.setBizModel(model);
if (!StringUtils.isEmpty(appAuthToken)) {
request.putOtherTextParam("app_auth_token", appAuthToken);
}
if (AliPayApiConfigKit.getAliPayApiConfig().isCertModel()) {
return certificateExecute(request);
} else {
return execute(request);
}
}
```
## 如何使用?
使用前请初始化客户端,请参考[支付宝初始化](../alipay/init.md)
```java ()
@RequestMapping(value = "/accountQuery")
@ResponseBody
public String accountQuery(@RequestParam("aliPayUserId") String aliPayUserId) {
AlipayFundAccountQueryModel model = new AlipayFundAccountQueryModel();
model.setAlipayUserId(aliPayUserId);
model.setAccountType("ACCTRANS_ACCOUNT");
try {
return AliPayApi.accountQueryToResponse(model,null).getBody();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
```
\ No newline at end of file
......@@ -3,8 +3,22 @@
## 初始化客户端
```java{8,9,11,12}
AliPayApiConfig aliPayApiConfig = AliPayApiConfig.builder()
```java{3,4,5,11,12,13,14,22,23}
AliPayApiConfig aliPayApiConfig = AliPayApiConfig.builder()
.setAppId(aliPayBean.getAppId())
.setAppCertPath(aliPayBean.getAppCertPath())
.setAliPayCertPath(aliPayBean.getAliPayCertPath())
.setAliPayRootCertPath(aliPayBean.getAliPayRootCertPath())
.setCharset("UTF-8")
.setPrivateKey(aliPayBean.getPrivateKey())
.setAliPayPublicKey(aliPayBean.getPublicKey())
.setServiceUrl(aliPayBean.getServerUrl())
.setSignType("RSA2")
// 普通公钥方式
//.build();
// 证书模式
.buildByCert();
// 或者
.setAppId(aliPayBean.getAppId())
.setAliPayPublicKey(aliPayBean.getPublicKey())
.setCharset("UTF-8")
......
......@@ -5,7 +5,10 @@
::: tip IJPay 中支付宝支付需要配置的参数如下:
- appId: 应用编号
- privateKey: 应用私钥
- publicKey: 支付宝公钥,通过应用公钥上传到支付宝开放平台换取支付宝公钥。
- publicKey: 支付宝公钥,通过应用公钥上传到支付宝开放平台换取支付宝公钥(如果是证书模式,公钥与私钥在CSR目录)。
- appCertPath: 应用公钥证书 (证书模式必须)
- aliPayCertPath: 支付宝公钥证书 (证书模式必须)
- aliPayRootCertPath: 支付宝根证书 (证书模式必须)
- serverUrl: 支付宝支付网关
- domain: 外网访问项目的域名,支付通知中会使用
:::
......
# 加入 VIP
IJPay 一直以简洁至上、开箱即用为核心。提供的 IJPay-Demo 也在简化使用流程做到简单修改配置就能用,同时也鼓励用户与 IJPay 「亲密接触」。
IJPay 一直以简洁至上、开箱即用为核心,提供的示例 (IJPay-Demo) 简单修改配置即可使用。
但由于开发环境不同或多或少会出现一些疑难问题,遇到问题不要慌你可以提 [issues](https://gitee.com/javen205/IJPay/issues)
会统一时间安排回复,如果你觉得响应慢或者交流不方便。那么请考虑一下 IJPay 提供的 VIP 服务。
如果项目周期短不想投入过多时间和精力在接入上面或者实在为技术感到头疼,那么请考虑一下 IJPay 提供的 VIP 服务。
如果您的项目开发周期短不想耗更多的时间与精力在踩坑与填坑的路上,那么请考虑一下 IJPay 提供的 VIP 服务。
提供一对一技术支持费用: **¥ 299** 元。**付款时请备注联系方式,或者[加群:723992875](http://shang.qq.com/wpa/qunwpa?idkey=44c2b0331f1bdca6c9d404e863edd83973fa97224b79778db79505fc592f00bc)联系群主**
亦或者没有研发团队,实在为技术感到头疼,那么请考虑一下 IJPay 提供的 VIP 服务。
同时也鼓励用户与 IJPay 「亲密接触」。
一对一在线技术支持: 限时优惠 **¥ 299** 元。**付款时请备注联系方式,或者[加群:723992875](http://shang.qq.com/wpa/qunwpa?idkey=44c2b0331f1bdca6c9d404e863edd83973fa97224b79778db79505fc592f00bc)联系群主**
# 请作者喝一杯咖啡
......
......@@ -37,6 +37,18 @@ IJPay 中支持的支付方式以及支付工具
IJPay 中常用支付方式涉及到的 [Model](https://gitee.com/javen205/IJPay/blob/master/IJPay-WxPay/src/main/java/com/ijpay/wxpay/model)
都是使用 `builder` 模式来构建,**其中 Model 每个字段与官方接口文档保持一致**,同时支持商户模式、服务商模式。
::: warning
为什么要使用 Lombok 来构建接口的请求参数?
1、使用 Lombok 来构建请求参数是为了方便,不用写太多的冗余 get set。
2、避免手动设置误写参数导致的低级错误。
外界对 Lombok 的评价也不太一致,喜欢的非常喜欢不喜欢的就使劲吐槽,那么 IJPay 中有其他的替代方案吗?
当然是有的,最简单粗暴的方法使用 Map 来构建请求参数,再使用 `WxPayKit.buildSign` 来构建签名即可。 IJPay 1.x 版本就是这么做的
:::
## 扩展 Model
由于支付方式的不同涉及到的接口非常多,如果某些接口的 Model 在 IJPay 没有提供封装,大家可以继承 [BaseModel](https://gitee.com/javen205/IJPay/blob/master/IJPay-Core/src/main/java/com/ijpay/core/model/BaseModel.java)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册