Просмотр исходного кода

//tt pay v2

release_toaliyun_real
xhxu 4 лет назад
Родитель
Сommit
9be4a8d194
3 измененных файлов: 31 добавлений и 25 удалений
  1. +27
    -22
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  2. +2
    -1
      mallinkService/src/main/java/com/iformall/douyin/payv2/auth/CertificatesVerifier.java
  3. +2
    -2
      mallinkService/src/main/java/com/iformall/douyin/payv2/util/PemUtils.java

+ 27
- 22
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.iformall.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import com.iformall.annotation.AuthIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker;
import com.iformall.common.Result;
@@ -34,10 +35,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;

@RestController
@RequestMapping("/api/order/")
@@ -138,27 +136,34 @@ public class WxOrderController extends BaseController {
list.add(dto);
return wxOrderService.composeSaveOrder(false,EnumComposeOrder.SINGLE,list,memberId,getPayWay(),getTenantInfo());
}

@AuthIgnore
@ApiOperation(value = "抖音支付2.0与下单回调推送订单", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}")
@PostMapping("douyinPushOrder")
public ResultData douyinPushOrder(@RequestBody Map param) {
public Map<String,Object> douyinPushOrder(@RequestBody Map param) {
logger.info("save douyinPushOrder:"+param);
Long memberId;
try {
memberId = getMemberId();
} catch (Exception e) {
return new ResultData(Result.ERROR,e.getMessage());
}
List<PlatPushOrderSaveDto> list = new ArrayList<>();
PlatPushOrderSaveDto dto = new PlatPushOrderSaveDto();
/**
* TODO 从抖音推送的订单中取信息,每个订单里面有extParam,用来放第三方平台匹配的参数信息
* 注意,wx_batch_order中要存allExtParam, wx_order,wx_coupon_order中存储每个订单的参数信息,需要自己根据总参数信息进行拆分
*/
list.add(dto);
String allExtParam = "[]";
return wxOrderService.platPushSaveOrder(false,EnumComposeOrder.ONE_NUMBER_ORDER_BATCH,allExtParam,list,memberId,getPayWay(),getTenantInfo());

Map<String, Object> map = new HashMap();
map.put("err_no",1000);
map.put("err_tips","库存不足");
return map;

// Long memberId;
// try {
// memberId = getMemberId();
// } catch (Exception e) {
// return new ResultData(Result.ERROR,e.getMessage());
// }
//
// List<PlatPushOrderSaveDto> list = new ArrayList<>();
// PlatPushOrderSaveDto dto = new PlatPushOrderSaveDto();
// /**
// * TODO 从抖音推送的订单中取信息,每个订单里面有extParam,用来放第三方平台匹配的参数信息
// * 注意,wx_batch_order中要存allExtParam, wx_order,wx_coupon_order中存储每个订单的参数信息,需要自己根据总参数信息进行拆分
// */
// list.add(dto);
// String allExtParam = "[]";
// return wxOrderService.platPushSaveOrder(false,EnumComposeOrder.ONE_NUMBER_ORDER_BATCH,allExtParam,list,memberId,getPayWay(),getTenantInfo());
}


+ 2
- 1
mallinkService/src/main/java/com/iformall/douyin/payv2/auth/CertificatesVerifier.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.iformall.douyin.payv2.auth;

import me.chanjar.weixin.common.error.WxRuntimeException;

import java.nio.charset.StandardCharsets;
import java.security.*;
import java.util.Base64;

@@ -19,7 +20,7 @@ public class CertificatesVerifier implements Verifier {
Signature sign = Signature.getInstance("SHA256withRSA");
sign.initVerify(this.apiKey);
sign.update(message);
return sign.verify(Base64.getDecoder().decode(signature));
return sign.verify(Base64.getDecoder().decode(signature.getBytes(StandardCharsets.UTF_8)));
} catch (NoSuchAlgorithmException e) {
throw new WxRuntimeException("当前Java环境不支持SHA256withRSA", e);
} catch (SignatureException e) {


+ 2
- 2
mallinkService/src/main/java/com/iformall/douyin/payv2/util/PemUtils.java Просмотреть файл

@@ -28,8 +28,8 @@ public class PemUtils {
}

String privateKey = array.toString("utf-8")
.replace("-----BEGIN RSA PRIVATE KEY-----", "")
.replace("-----END RSA PRIVATE KEY-----", "")
.replace("-----BEGIN PRIVATE KEY-----", "")
.replace("-----END PRIVATE KEY-----", "")
.replaceAll("\\s+", "");

KeyFactory kf = KeyFactory.getInstance("RSA");


Загрузка…
Отмена
Сохранить