【实战】 对接微信支付分(前端小程序、后端java) 【二】
实战:对接微信支付分(前端小程序、后端Java)
二、完结支付分订单接口
在上一篇文章中,我们已经完成了用户下单和支付的流程。现在,我们需要实现当用户结束服务时,商户根据实际情况调用《完结支付分订单》接口,微信根据《完结支付分订单》接口中传递的扣款金额完成扣款。
1. 完结支付分订单接口
首先,我们需要了解《完结支付分订单》接口的定义和参数。这个接口用于商户在用户结束服务后,根据实际情况调用微信完成扣款。
2. 接口请求方式
这个接口使用POST请求方式。
3. URL传参
在URL中,我们需要传入商户侧订单号等信息,这些信息将作为参数传递给微信服务器。
注意点:
1. url中要传入商户侧订单号:这是一个关键的参数,必须传递给微信服务器,以便微信能够正确地完成扣款。
2. 传递的参数必须准确:传递的参数必须准确无误,否则可能导致扣款失败或其他问题。
4. 后端Java实现
在后端Java中,我们需要使用HTTP请求库(例如OkHttp)来发送POST请求到微信服务器。我们需要传递《完结支付分订单》接口的参数,包括商户侧订单号等信息。
```javaimport ok ok ok class WeChatPay {
public static void main(String[] args) throws Exception {
// 设置微信服务器地址和端口 String url = " // 设置商户侧订单号等参数 Map
params.put("out_trade_no", "商户侧订单号");
params.put("transaction_id", "微信交易ID");
// 使用OkHttp发送POST请求到微信服务器 OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.post(RequestBody.create(MediaType.get("application/json"), JSON.toJSONString(params)))
.build();
Response response = client.newCall(request).execute();
String responseBody = response.body().string();
System.out.println(responseBody);
}
}
```
5. 前端小程序实现
在前端小程序中,我们需要使用微信支付SDK来完成扣款。我们需要调用《完结支付分订单》接口,传递商户侧订单号等参数。
```javascriptimport { request } from 'umi';
export default async function closeOrder(outTradeNo, transactionId) {
const url = ' const params = {
out_trade_no: outTradeNo,
transaction_id: transactionId,
};
try {
const response = await request(url, {
method: 'POST',
data: params,
});
console.log(response);
} catch (error) {
console.error(error);
}
}
```
6. 总结
在本篇文章中,我们完成了对接微信支付分的《完结支付分订单》接口。我们使用后端Java和前端小程序实现了这个接口,传递商户侧订单号等参数,完成扣款。