- 前言
- 一、所需SDK
- 二、前端调用接口
- 1.生成二维码
- 2.成功回调
- 2.成功回调
- 总结
前言
支付宝支付之PC生成二维码 成功并回调
一、所需SDK
二、前端调用接口 1.生成二维码com.github.binarywang wx-java-pay-spring-boot-starter 4.2.2.B com.github.wxpay wxpay-sdk 0.0.3 com.yungouos.pay yungouos-pay-sdk 2.0.10
代码如下(示例):
//微信支付创建订单
@PostMapping("/createOrder")
public R createOrder(@RequestBody PayOrder payOrder) throws WxPayException, ParseException {
//支付方式微信
payOrder.setType(0);
//随机订单号
String number = YitIdHelper.nextId()+"";
payOrder.setId(Long.valueOf(number));
//系统当前时间
payOrder.setCreateTime(new Date());
//支付状态
payOrder.setState(0);
//订单创建
payOrderMapper.insert(payOrder);
WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
request.setVersion("1.0");
request.setDeviceInfo("WEB");
request.setBody("支付");
request.setNotifyUrl(servlet + "/payBack/wxPay");//回调地址
request.setTradeType("NATIVE");
request.setProductId(number);
request.setOutTradeNo(number);
request.setFeeType("CNY");
//金额需*100
request.setTotalFee(payOrder.getAmount().multiply(BigDecimal.valueOf(100)).intValue());
request.setSpbillCreateIp("127.0.0.1");
//调用生成二维码
WxPayNativeOrderResult wxPayNativeOrderResult = wxService.createOrder(request);
String codeUrl = wxPayNativeOrderResult.getCodeUrl();
Map wxReturn = new HashMap<>();
wxReturn.put("codeUrl",codeUrl);
wxReturn.put("outTradeNo",number);
return data(wxReturn);
}
2.成功回调
代码如下(示例):
//微信支付回调
@RequestMapping("/wxPay")
public String mp(@RequestBody String data) {
WxPayOrderNotifyResult result = WxPayOrderNotifyResult.fromXML(data);
String orderId = result.getOutTradeNo();
return process2(orderId, result.getTransactionId(), result.getOpenid());
}
private String process2(String payOrderId, String orderNo, String openid)
{
PayOrder payOrder = payOrderMapper.selectById(payOrderId);
if (payOrder == null) {
System.out.println("订单不存在");
return "SUCCESS";
}
//成功后业务处理省略
········
payOrder.setState(1);
payOrderMapper.updateByPrimaryKey(payOrder);
if (payOrder.getState() == 1) {
System.out.println("订单已完成");
return "SUCCESS";
}
return "SUCCESS";
}
2.成功回调
wx:
mp:
app-id: appid
secret: secret
aes-key: aeskey
token: token
miniapp:
appid: appid
secret: secret
aes-key: aeskey
token: token
pay:
app-id: xxx
mch-id: xxx
mch-key: xxx
apiv3-key: xxx
key-path: classpath:xxx证书路径
cert-serial-no: xxx
open:
app-id: appid
secret: secret
aes-key: aeskey
token: token
总结
支付宝支付 首先调用生成二维码 扫码支付成功后回调



