微信支付(小程序)-java实现与小程序实现
一:java配置
二:工具类:获取本地IP与Enum类 与订单支付返回数据
1: 2:订单 Enum类
package com.io.common.enums; public enum OrderStatusEnum { CANCEL(0,"已取消"), NOT_YET_SHIPPED(1,"待支付"), PART_OF_THE_SHIPMENT(2,"待发货"), WAIT_RECEIVING(3,"待收货"), ACHIEVE(4,"已完成"), ; private Integer key; private String desc; OrderStatusEnum(Integer key, String desc){ this.key = key; this.desc = desc; } public Integer getKey() { return key; } public String getDesc() { return desc; } }
3:支付方式Enum类
package com.io.order.form; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @author ts * @version 1.0 * @date 2022/08/05 */ @Data public class WxPayForm { private Integer orderId; @ApiModelProperty("订单号") private String orderNo; @ApiModelProperty("支付订单号") private String orderPayNo; @ApiModelProperty("实际支付金额") private BigDecimal payAmount; }
package com.io.order.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class AfterPayVO { @ApiModelProperty("timeStamp") private String timeStamp; @ApiModelProperty("nonceStr") private String nonceStr; @ApiModelProperty("packageValue") private String packageValue; @ApiModelProperty("signType") private String signType; @ApiModelProperty("paySign") private String paySign; }
三:service与controller
1:支付 service类
2:支付 service类实现
3: Controller类
package com.io.order.controller; import com.io.base.BaseController; import com.io.order.service.PayService; import com.io.util.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @RestController @RequestMapping("/pay") @Api(tags = "支付接口") @Slf4j public class PayController{ @Autowired private PayService payService; @PostMapping("/payNotify/{appid}") @ApiOperation("支付回调") public R payNotify(@PathVariable String appid, @RequestBody String xmlData, HttpServletResponse response) throws Exception { payService.payNotify(appid, xmlData, response); return R.ok(); }
三:小程序调用 支付接口
注:res.data.purchase 是先走下单逻辑(去后台下单并且调用了 支付接口) 返回参数: AfterPayVO类; 小程序前端所用到的参数是 订单支付返回的参数 wx.requestPayment({ timeStamp: res.data.purchase.timeStamp, nonceStr: res.data.purchase.nonceStr, package: res.data.purchase.packageValue, signType: MD5, paySign: res.data.purchase.paySign, success (res) { 支付成功 }, fail (res) { 支付取消或失败 } })
2: 开发工具中测试支付接口 所展示的样子 3:正式环境样式
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
第三方对接-微信登陆对接