记得上下班打卡 | git大法好,push需谨慎

Commit 4a2d60da authored by zhengfuxin's avatar zhengfuxin

支持微信支付。扫码

parent 01e5e047
......@@ -44,7 +44,7 @@ public class DragonConstant {
public enum DeviceFromEnum{
WEB("web",""),WAP("wap",""),WAPPAGE("wappage","")
,APP("app",""),JS("js",""),APPLET("applet","");
,APP("app",""),JS("js",""),APPLET("applet",""),MICROPAY("micropay","");
private String code;
private String message;
DeviceFromEnum(String code, String message) {
......
......@@ -35,6 +35,7 @@ public class DragonPayBaseReqDto implements Serializable, Cloneable{
private String quitUrl;
private String showUrl;
private String returnUrl;
private String authCode;
@Override
public String toString(){
......
package com.liquidnet.service.dragon.channel.wepay.strategy.impl;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.dragon.channel.wepay.resp.WepayPayRespDto;
import com.liquidnet.service.dragon.channel.wepay.strategy.annotation.StrategyWepayHandler;
import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import com.liquidnet.service.dragon.utils.PayWepayUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.SortedMap;
import java.util.TreeMap;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: AlipayStrategyWapImpl
* @Package com.liquidnet.service.dragon.channel.alipay.strategy.impl
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/10 14:34
*/
@Slf4j
@Component
@StrategyWepayHandler(DragonConstant.DeviceFromEnum.MICROPAY)
public class WepayStrategyMicropayImpl extends AbstractWepayStrategy {
@Value("${liquidnet.dragon.url}")
private String notifyUrl;
@Override
SortedMap<String, Object> appendRequestParam(SortedMap<String, Object> requestMap,DragonPayBaseReqDto dragonPayBaseReqDto) {
requestMap.put("trade_type", "MICROPAY");
requestMap.put("appid", PayWepayUtils.getInstance().getAPP_ID());
requestMap.remove("notify_url");
requestMap.put("auth_code",dragonPayBaseReqDto.getAuthCode());
return requestMap;
}
@Override
DragonPayBaseRespDto buildResponseDto(DragonPayBaseRespDto payBaseRespDto, WepayPayRespDto respDto) {
payBaseRespDto.getPayData().setPackages("Sign=WXPay");
//设置签名
SortedMap<String, Object> paramMap = new TreeMap<String, Object>();
paramMap.put("appid", payBaseRespDto.getPayData().getAppId());
paramMap.put("partnerid", payBaseRespDto.getPayData().getPartnerId());
paramMap.put("prepayid", payBaseRespDto.getPayData().getPrepayId());
paramMap.put("package", payBaseRespDto.getPayData().getPackages());
paramMap.put("noncestr", payBaseRespDto.getPayData().getNonceStr());
paramMap.put("timestamp", payBaseRespDto.getPayData().getTimeStamp());
log.info("wepay sercond sign param :{} ", JsonUtils.toJson(paramMap));
String sign = PayWepayUtils.getInstance().createSign(paramMap);
payBaseRespDto.getPayData().setPaySign(sign);
return payBaseRespDto;
}
@Override
protected String getRequestUrl() {
return "https://api.mch.weixin.qq.com/pay/micropay";
}
@Override
protected String getNotifyUrl() {
return notifyUrl + "/notify/wepay/app";
}
@Override
protected String getAppid() {
return PayWepayUtils.getInstance().getAPP_ID();
}
}
......@@ -46,7 +46,7 @@ public class PayController {
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "payType", value = "支付类型:alipay,wepay,unionpay,applepay", example = "unionpay"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "deviceFrom", value = "设备来源:web,wap,app,js,apple", example = "wap"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "deviceFrom", value = "设备来源:web,wap,app,js,apple,micropay", example = "wap"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "业务类型:TICKET,PRODUCT,COST,MBEANS,LIVE,VIDEO,VIP,CLUB,STRAWBERRY", example = "TICKET"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "price", value = "支付金额", example = "0.1"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "name", value = "订单名称", example = "测试订单001"),
......@@ -57,6 +57,7 @@ public class PayController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "notifyUrl", value = "通知url", example = "devdragon.zhengzai.tv"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "createDate", value = "订单创建时间", example = "2021-11-10 13:00:00"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "expireTime", value = "订单过期时间", example = "1000"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "authCode", value = "付款码", example = "1000"),
})
@ResponseBody
public ResponseDto<DragonPayBaseRespDto> dragonPay(
......@@ -76,7 +77,8 @@ public class PayController {
@RequestParam(value = "showUrl", required = false) String showUrl,
// @RequestParam(value = "code",required = false) String code,
@RequestParam(value = "createDate", required = true) String createDate,
@RequestParam(value = "expireTime", required = true) String expireTime) {
@RequestParam(value = "expireTime", required = true) String expireTime,
@RequestParam(value = "authCode", required = true) String authCode) {
long startTime = System.currentTimeMillis();
//为什么在js和applet中才需要判断open_id?
if (payType.equalsIgnoreCase(DragonConstant.PayChannelEnum.WEPAY.getCode())) {
......@@ -92,6 +94,7 @@ public class PayController {
dragonPayBaseReqDto.setOpenId(openId);
dragonPayBaseReqDto.setType(type);
dragonPayBaseReqDto.setPrice(price);
dragonPayBaseReqDto.setAuthCode(authCode);
// if(StringUtil.isNotNull(name)&&name.length()>=32){
// name = name.substring(0,32);
// }
......
......@@ -84,7 +84,7 @@ public class GoblinFrontController {
return ResponseDto.success( goblinFrontService.getCube());
}
@GetMapping("getRecommend")
@ApiOperation("获取魔方")
@ApiOperation("获取新品推荐")
public ResponseDto<GoblinFrontCubeVo> getRecommend() throws ParseException {
return ResponseDto.success( goblinFrontService.getRecommend());
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment