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

// tt 订单14分钟和token刷新

release_toaliyun_real
xhxu 3 лет назад
Родитель
Сommit
c22a566f26
7 измененных файлов: 51 добавлений и 28 удалений
  1. +1
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  2. +11
    -6
      mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsGetRequestExecutor.java
  3. +11
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsPostRequestExecutor.java
  4. +0
    -8
      mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebGoodsServiceImpl.java
  5. +3
    -12
      mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebServiceImpl.java
  6. +24
    -0
      mallinkService/src/main/java/com/iformall/douyin/web/config/TtWebConstants.java
  7. +1
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java

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

@@ -250,7 +250,7 @@ public class WxOrderController extends BaseController {
WxComposeOrder order = (WxComposeOrder) resultData.data;
Map<String, Object> data = new HashMap<>();
data.put("out_order_no",order.getMainOrderId().toString());
data.put("pay_expire_seconds",10*60);
data.put("pay_expire_seconds",14*60);
data.put("order_entry_schema",wxOrderService.getOrderEntrySchema(order.getMainOrderId()));
// List<Map<String,Object>> goodsValid = new ArrayList<>();
// for (Long couponChannelId:order.getCouponChannelMap().keySet()) {


+ 11
- 6
mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsGetRequestExecutor.java Просмотреть файл

@@ -75,13 +75,18 @@ public class TtWebGoodsGetRequestExecutor implements RequestExecutor<String, Str
try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpGet)) {
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
logger.info("response{}"+responseContent);
int code = 0;
String msg = null;
try {
JSONObject jsonObject = JSON.parseObject(responseContent);
JSONObject base = jsonObject.getJSONObject("base");
code = base.getInteger("gateway_code");
msg = base.getString("gateway_msg");
}catch(Exception e){}
if(code != 0){
throw new WxErrorException(WxError.builder().errorCode(code).errorMsg(msg).build());
}
return responseContent;
// JSONObject jsonObject = JSON.parseObject(responseContent);
// JSONObject data = jsonObject.getJSONObject("data");
// WxError error = WxError.fromJson(data.toJSONString());
// if (error.getErrorCode() != 0) {
// throw new WxErrorException(error);
// }
// return data.toString();
} finally {
httpGet.releaseConnection();


+ 11
- 0
mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsPostRequestExecutor.java Просмотреть файл

@@ -80,6 +80,17 @@ public class TtWebGoodsPostRequestExecutor implements RequestExecutor<String, St
if (responseContent.isEmpty()) {
throw new WxErrorException(WxError.builder().errorCode(9999).errorMsg("无响应内容").build());
}
int code = 0;
String msg = null;
try {
JSONObject jsonObject = JSON.parseObject(responseContent);
JSONObject base = jsonObject.getJSONObject("base");
code = base.getInteger("gateway_code");
msg = base.getString("gateway_msg");
}catch(Exception e){}
if(code != 0){
throw new WxErrorException(WxError.builder().errorCode(code).errorMsg(msg).build());
}
return responseContent;

// if (responseContent.startsWith("<xml>")) {


+ 0
- 8
mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebGoodsServiceImpl.java Просмотреть файл

@@ -1,21 +1,13 @@
package com.iformall.douyin.web.api.impl;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.iformall.common.ErrorCode;
import com.iformall.douyin.pay.exception.TtPayException;
import com.iformall.douyin.payv2.request.CallBackSettingsRequest;
import com.iformall.douyin.payv2.result.BaseTtPayResult;
import com.iformall.douyin.web.api.*;
import com.iformall.douyin.web.bean.*;
import com.iformall.exception.MallinkException;
import lombok.AllArgsConstructor;
import me.chanjar.weixin.common.error.WxError;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.json.GsonHelper;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;


+ 3
- 12
mallinkService/src/main/java/com/iformall/douyin/web/api/impl/TtWebServiceImpl.java Просмотреть файл

@@ -15,27 +15,20 @@ import me.chanjar.weixin.common.util.DataUtils;
import me.chanjar.weixin.common.util.http.*;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;

import java.io.IOException;
import java.lang.reflect.Field;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.Lock;

import static cn.binarywang.wx.miniapp.constant.WxMaConstants.ErrorCode.*;
import static com.iformall.douyin.web.config.TtWebConstants.ErrorCode.*;


/**
* @author
@@ -242,9 +235,7 @@ public class TtWebServiceImpl implements TtWebService, RequestHttp<CloseableHttp
/*
* 发生以下情况时尝试刷新access_token
*/
if (error.getErrorCode() == ERR_40001
|| error.getErrorCode() == ERR_42001
|| error.getErrorCode() == ERR_40014) {
if (error.getErrorCode() == ERR_200104) {
// 强制设置WxMaConfig的access token过期了,这样在下一次请求里就会刷新access token
this.getTtWebConfig().expireAccessToken();
if (this.getTtWebConfig().autoRefreshToken()) {


+ 24
- 0
mallinkService/src/main/java/com/iformall/douyin/web/config/TtWebConstants.java Просмотреть файл

@@ -0,0 +1,24 @@
package com.iformall.douyin.web.config;

/**
* <pre>
* 小程序常量.
* </pre>
*
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
public class TtWebConstants {
/**
* 微信接口返回的参数errcode.
*/
public static final String ERRCODE = "errcode";

public static final class ErrorCode {
/**
* 200104 token已过期
*/
public static final int ERR_200104 = 200104;

}

}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/miniApp/TtMiniAppPayAdapterService.java Просмотреть файл

@@ -119,7 +119,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen
request.setTotalAmount(composeOrder.getPayment());
request.setOpenId(openId);
request.setOutOrderNo(record.getPayOrderNo());
request.setPayExpireSeconds(10*60);
request.setPayExpireSeconds(14*60);
TtPayUnifiedOrderV2Request.PageEntry pageEntry = new TtPayUnifiedOrderV2Request.PageEntry();
pageEntry.setPath(Constant.mainPageUrl);
Map<String,Object> paramMap = new HashMap<>();


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