java(服务器端)调用支付宝和微信支付功能

8

java(服务器端)调用支付宝和微信支付功能

Java服务器端调用支付宝和微信支付功能

最近项目上用到了调用微信和支付宝的第三方支付接口,因为以前没用过,所以这次用到了之后总结一下分享给大家。这篇文章将介绍两种支付方式,即app支付和扫码支付方式。

一、app支付(这里只介绍java端调用支付,安卓或iOS客户端不涉及)

1.1 支付宝app支付1.1.1 支付宝app支付接口首先,我们需要在支付宝开发者平台上申请一个商户ID和API密钥。然后,我们可以使用以下java代码来调用支付宝的app支付接口:

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class AlipayController {

@PostMapping("/alipay/appPay")

public String appPay(@RequestBody Map params) {

//1. 初始化支付宝SDK AlipayClient alipayClient = new AlipayClient(" "your_app_id", "your_private_key");

//2. 构造请求参数 Map requestParams = new HashMap<>();

requestParams.put("biz_content", "{"out_trade_no":"your_out_trade_no","subject":"your_subject","total_amount":"your_total_amount"}");

requestParams.put("notify_url", " requestParams.put("return_url", " //3. 调用支付宝app支付接口 String result = alipayClient.sdkTradeWapPay(requestParams);

return result;

}

}

```

1.1.2 支付宝app支付回调当用户完成支付后,支付宝会向我们的服务器端发送一个回调请求。我们需要在回调接口中处理这个请求,并将结果返回给支付宝。

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class AlipayController {

@PostMapping("/alipay/notify")

public String notify(@RequestBody Map params) {

//1. 验证回调请求的签名 String sign = getSign(params);

if (!sign.equals("your_sign")) {

return "fail";

}

//2. 处理回调请求 String result = handleNotify(params);

return result;

}

}

```

1.2 微信app支付微信app支付的接口和支付宝类似,我们需要在微信开发者平台上申请一个商户ID和API密钥。然后,我们可以使用以下java代码来调用微信的app支付接口:

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class WechatController {

@PostMapping("/wechat/appPay")

public String appPay(@RequestBody Map params) {

//1. 初始化微信SDK WechatClient wechatClient = new WechatClient(" "your_app_id", "your_private_key");

//2. 构造请求参数 Map requestParams = new HashMap<>();

requestParams.put("appid", "your_app_id");

requestParams.put("mchid", "your_mch_id");

requestParams.put("nonce_str", getNonceStr());

requestParams.put("body", "your_body");

requestParams.put("total_fee", "your_total_fee");

//3. 调用微信app支付接口 String result = wechatClient.sdkPay(requestParams);

return result;

}

}

```

1.2.2 微信app支付回调当用户完成支付后,微信会向我们的服务器端发送一个回调请求。我们需要在回调接口中处理这个请求,并将结果返回给微信。

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class WechatController {

@PostMapping("/wechat/notify")

public String notify(@RequestBody Map params) {

//1. 验证回调请求的签名 String sign = getSign(params);

if (!sign.equals("your_sign")) {

return "fail";

}

//2. 处理回调请求 String result = handleNotify(params);

return result;

}

}

```

二、扫码支付

2.1 支付宝扫码支付2.1.1 支付宝扫码支付接口我们可以使用以下java代码来调用支付宝的扫码支付接口:

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class AlipayController {

@PostMapping("/alipay/scanPay")

public String scanPay(@RequestBody Map params) {

//1. 初始化支付宝SDK AlipayClient alipayClient = new AlipayClient(" "your_app_id", "your_private_key");

//2. 构造请求参数 Map requestParams = new HashMap<>();

requestParams.put("biz_content", "{"out_trade_no":"your_out_trade_no","subject":"your_subject","total_amount":"your_total_fee"}");

requestParams.put("notify_url", " requestParams.put("return_url", " //3. 调用支付宝扫码支付接口 String result = alipayClient.sdkTradeWapPay(requestParams);

return result;

}

}

```

2.1.2 支付宝扫码支付回调当用户完成支付后,支付宝会向我们的服务器端发送一个回调请求。我们需要在回调接口中处理这个请求,并将结果返回给支付宝。

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class AlipayController {

@PostMapping("/alipay/notify")

public String notify(@RequestBody Map params) {

//1. 验证回调请求的签名 String sign = getSign(params);

if (!sign.equals("your_sign")) {

return "fail";

}

//2. 处理回调请求 String result = handleNotify(params);

return result;

}

}

```

2.2 微信扫码支付微信扫码支付的接口和支付宝类似,我们可以使用以下java代码来调用微信的扫码支付接口:

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class WechatController {

@PostMapping("/wechat/scanPay")

public String scanPay(@RequestBody Map params) {

//1. 初始化微信SDK WechatClient wechatClient = new WechatClient(" "your_app_id", "your_private_key");

//2. 构造请求参数 Map requestParams = new HashMap<>();

requestParams.put("appid", "your_app_id");

requestParams.put("mchid", "your_mch_id");

requestParams.put("nonce_str", getNonceStr());

requestParams.put("body", "your_body");

requestParams.put("total_fee", "your_total_fee");

//3. 调用微信扫码支付接口 String result = wechatClient.sdkPay(requestParams);

return result;

}

}

```

2.2.2 微信扫码支付回调当用户完成支付后,微信会向我们的服务器端发送一个回调请求。我们需要在回调接口中处理这个请求,并将结果返回给微信。

```javaimport java.util.HashMap;

import java.util.Map;

import javax.servlet. org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class WechatController {

@PostMapping("/wechat/notify")

支付功能app微信支付宝支付服务器端代码

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

上一篇 java微信支付

下一篇 微信小程序 | 网易云+ChatGPT实现一个智能音乐推荐小程序