JavaEE 微信境外支付

17

JavaEE 微信境外支付

JavaEE 微信境外支付概述

微信境外支付是微信支付提供的跨境电子支付服务,支持普通商户版和服务商版两种模式。境外支付允许商户在境外接入微信支付系统,实现对境外用户的收款。

API文档

普通商户版 支付方式1. 刷卡支付2. 公众号支付3. 扫码支付 流程1. 商户在微信支付平台上注册并开通境外支付功能。

2. 用户在微信公众号或扫码设备中完成支付流程。

3. 支付结果通知商户。

服务商版 支付方式1. 刷卡支付2. 公众号支付3. 扫码支付4. API接口支付 流程1. 商户在微信支付平台上注册并开通服务商版功能。

2. 用户在微信公众号或扫码设备中完成支付流程。

3. 支付结果通知商户。

API接口 支付接口* `POST /v3/pay/apply`:申请支付* `GET /v3/pay/query`:查询支付结果* `POST /v3/pay/cancel`:取消支付 回调接口* `POST /v3/pay/callback`:支付回调通知 支付方式 刷卡支付1. 用户在微信公众号或扫码设备中完成刷卡支付流程。

2. 支付结果通知商户。

公众号支付1. 用户在微信公众号中完成支付流程。

2. 支付结果通知商户。

扫码支付1. 收银员使用扫码设备读取微信用户刷卡授权码。

2.传送至商户收银台,完成支付流程。

3. 支付结果通知商户。

支付结果* `SUCCESS`:支付成功* `FAIL`:支付失败* `CANCEL`:支付取消 JavaEE 实现 普通商户版 支付接口实现```java@WebServlet(name = "PayServlet", urlPatterns = "/pay")

public class PayServlet extends HttpServlet {

@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//申请支付 String appId = request.getParameter("appId");

String mchId = request.getParameter("mchId");

String nonceStr = request.getParameter("nonceStr");

String sign = request.getParameter("sign");

PayRequest payRequest = new PayRequest(appId, mchId, nonceStr, sign);

PayResponse payResponse = payService.applyPay(payRequest);

// 支付结果通知 if (payResponse.getStatus() ==200) {

response.getWriter().write("支付成功");

} else {

response.getWriter().write("支付失败");

}

}

}

```

回调接口实现```java@WebServlet(name = "CallbackServlet", urlPatterns = "/callback")

public class CallbackServlet extends HttpServlet {

@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 支付回调通知 String appId = request.getParameter("appId");

String mchId = request.getParameter("mchId");

String nonceStr = request.getParameter("nonceStr");

String sign = request.getParameter("sign");

PayRequest payRequest = new PayRequest(appId, mchId, nonceStr, sign);

PayResponse payResponse = payService.callbackPay(payRequest);

// 支付结果通知 if (payResponse.getStatus() ==200) {

response.getWriter().write("支付成功");

} else {

response.getWriter().write("支付失败");

}

}

}

```

服务商版 支付接口实现```java@WebServlet(name = "PayServlet", urlPatterns = "/pay")

public class PayServlet extends HttpServlet {

@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//申请支付 String appId = request.getParameter("appId");

String mchId = request.getParameter("mchId");

String nonceStr = request.getParameter("nonceStr");

String sign = request.getParameter("sign");

PayRequest payRequest = new PayRequest(appId, mchId, nonceStr, sign);

PayResponse payResponse = payService.applyPay(payRequest);

// 支付结果通知 if (payResponse.getStatus() ==200) {

response.getWriter().write("支付成功");

} else {

response.getWriter().write("支付失败");

}

}

}

```

回调接口实现```java@WebServlet(name = "CallbackServlet", urlPatterns = "/callback")

public class CallbackServlet extends HttpServlet {

@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 支付回调通知 String appId = request.getParameter("appId");

String mchId = request.getParameter("mchId");

String nonceStr = request.getParameter("nonceStr");

String sign = request.getParameter("sign");

PayRequest payRequest = new PayRequest(appId, mchId, nonceStr, sign);

PayResponse payResponse = payService.callbackPay(payRequest);

// 支付结果通知 if (payResponse.getStatus() ==200) {

response.getWriter().write("支付成功");

} else {

response.getWriter().write("支付失败");

}

}

}

```

总结JavaEE 微信境外支付实现了普通商户版和服务商版两种模式。普通商户版支持刷卡支付、公众号支付和扫码支付三种支付方式,而服务商版则支持四种支付方式,包括刷卡支付、公众号支付、扫码支付和API接口支付。JavaEE 实现了支付接口和回调接口两部分,分别用于申请支付和支付回调通知。

支付

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 关于微信小程序支付APIv2“签名验证失败”问题解决方案

下一篇 Java微信支付问题_为了Java微信支付V3开发包,我找出了微信支付文档至少六个错误...