mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-03-10 00:13:40 +08:00
🆕 #2631 【小程序】小程序交易组件-订单服务新增获取订单列表和生成支付参数的接口
This commit is contained in:
@@ -2,11 +2,11 @@ package cn.binarywang.wx.miniapp.api;
|
||||
|
||||
import cn.binarywang.wx.miniapp.bean.shop.WxMaShopOrderInfo;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.request.WxMaShopOrderPayRequest;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAddOrderResponse;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopBaseResponse;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopGetOrderResponse;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.*;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 小程序交易组件-订单服务
|
||||
*
|
||||
@@ -21,4 +21,46 @@ public interface WxMaShopOrderService {
|
||||
|
||||
WxMaShopGetOrderResponse getOrder(Integer orderId, String outOrderId, String openid)
|
||||
throws WxErrorException;
|
||||
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
*
|
||||
* 获取订单列表
|
||||
*
|
||||
* 请求方式:POST(HTTPS)
|
||||
* 请求地址:<a href="https://api.weixin.qq.com/shop/order/get_list">请求地址</a>
|
||||
*
|
||||
* 文档地址:<a href="https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/get_order_list.html">文档地址</a>
|
||||
* </pre>
|
||||
*
|
||||
* @param page 第x页,大于等于1
|
||||
* @param pageSize 每页订单数,上限100
|
||||
* @param desc 是否时间倒叙
|
||||
* @param startCreateTime 起始创建时间
|
||||
* @param endCreateTime 最终创建时间
|
||||
* @return 订单列表信息
|
||||
* @throws WxErrorException .
|
||||
*/
|
||||
WxMaShopGetOrderListResponse getOrderList(Integer page, Integer pageSize, Boolean desc, Date startCreateTime, Date endCreateTime)
|
||||
throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
*
|
||||
* 生成支付参数
|
||||
*
|
||||
* 请求方式:POST(HTTPS)
|
||||
* 请求地址:<a href="https://api.weixin.qq.com/shop/order/getpaymentparams">请求地址</a>
|
||||
*
|
||||
* 文档地址:<a href="https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/getpaymentparams.html">文档地址</a>
|
||||
* </pre>
|
||||
*
|
||||
* @param orderId 微信侧订单id
|
||||
* @param outOrderId 商家自定义订单ID
|
||||
* @param openid 用户openid
|
||||
* @return 支付参数
|
||||
* @throws WxErrorException .
|
||||
*/
|
||||
WxMaShopGetPaymentParamsResponse getPaymentParams(String orderId, String outOrderId, String openid) throws WxErrorException;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
package cn.binarywang.wx.miniapp.api.impl;
|
||||
|
||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Shop.Order.ORDER_ADD;
|
||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Shop.Order.ORDER_CHECK_SCENE;
|
||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Shop.Order.ORDER_GET;
|
||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Shop.Order.ORDER_PAY;
|
||||
|
||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||
import cn.binarywang.wx.miniapp.api.WxMaShopOrderService;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.WxMaShopOrderInfo;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.request.WxMaShopOrderPayRequest;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAddOrderResponse;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopBaseResponse;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopGetOrderResponse;
|
||||
import cn.binarywang.wx.miniapp.bean.shop.response.*;
|
||||
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
|
||||
import com.google.gson.JsonObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -21,6 +14,12 @@ import me.chanjar.weixin.common.error.WxError;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.common.util.json.GsonHelper;
|
||||
import me.chanjar.weixin.common.util.json.GsonParser;
|
||||
import org.apache.commons.lang3.time.FastDateFormat;
|
||||
|
||||
import java.text.Format;
|
||||
import java.util.Date;
|
||||
|
||||
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Shop.Order.*;
|
||||
|
||||
/**
|
||||
* @author boris
|
||||
@@ -28,6 +27,9 @@ import me.chanjar.weixin.common.util.json.GsonParser;
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class WxMaShopOrderServiceImpl implements WxMaShopOrderService {
|
||||
|
||||
private final Format dateFormat = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
private static final String ERR_CODE = "errcode";
|
||||
private static final String MATCH_KEY = "is_matched";
|
||||
private final WxMaService wxMaService;
|
||||
@@ -45,34 +47,49 @@ public class WxMaShopOrderServiceImpl implements WxMaShopOrderService {
|
||||
|
||||
@Override
|
||||
public WxMaShopAddOrderResponse addOrder(WxMaShopOrderInfo orderInfo) throws WxErrorException {
|
||||
String responseContent = this.wxMaService.post(ORDER_ADD, orderInfo);
|
||||
JsonObject jsonObject = GsonParser.parse(responseContent);
|
||||
if (jsonObject.get(ERR_CODE).getAsInt() != 0) {
|
||||
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
|
||||
}
|
||||
return WxMaGsonBuilder.create().fromJson(responseContent, WxMaShopAddOrderResponse.class);
|
||||
return this.post(ORDER_ADD,orderInfo, WxMaShopAddOrderResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxMaShopBaseResponse orderPay(WxMaShopOrderPayRequest request) throws WxErrorException {
|
||||
String responseContent = this.wxMaService.post(ORDER_PAY, request);
|
||||
JsonObject jsonObject = GsonParser.parse(responseContent);
|
||||
if (jsonObject.get(ERR_CODE).getAsInt() != 0) {
|
||||
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
|
||||
}
|
||||
return WxMaGsonBuilder.create().fromJson(responseContent, WxMaShopBaseResponse.class);
|
||||
return this.post(ORDER_PAY,request, WxMaShopBaseResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxMaShopGetOrderResponse getOrder(Integer orderId, String outOrderId, String openid)
|
||||
throws WxErrorException {
|
||||
String responseContent = this.wxMaService.post(ORDER_GET,
|
||||
public WxMaShopGetOrderResponse getOrder(Integer orderId, String outOrderId, String openid) throws WxErrorException {
|
||||
return this.post(ORDER_GET, GsonHelper.buildJsonObject("order_id", orderId, "out_order_id", outOrderId,
|
||||
"openid", openid), WxMaShopGetOrderResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxMaShopGetOrderListResponse getOrderList(Integer page, Integer pageSize, Boolean desc, Date startCreateTime, Date endCreateTime) throws WxErrorException {
|
||||
JsonObject object = new JsonObject();
|
||||
object.addProperty("page", page == null ? 1 : page);
|
||||
object.addProperty("page_size", pageSize == null ? 10 : pageSize);
|
||||
object.addProperty("desc", desc ? 1 : 2);
|
||||
if (startCreateTime != null) {
|
||||
object.addProperty("start_create_time", this.dateFormat.format(startCreateTime));
|
||||
}
|
||||
if (endCreateTime != null) {
|
||||
object.addProperty("end_create_time", this.dateFormat.format(endCreateTime));
|
||||
}
|
||||
return this.post(ORDER_GET_LIST, object, WxMaShopGetOrderListResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxMaShopGetPaymentParamsResponse getPaymentParams(String orderId, String outOrderId, String openid) throws WxErrorException {
|
||||
return this.post(ORDER_GET_PAYMENT_PARAMS,
|
||||
GsonHelper.buildJsonObject("order_id", orderId, "out_order_id", outOrderId,
|
||||
"openid", openid));
|
||||
"openid", openid), WxMaShopGetPaymentParamsResponse.class);
|
||||
}
|
||||
|
||||
|
||||
private <T> T post(String url, Object params, Class<T> classOfT) throws WxErrorException {
|
||||
String responseContent = this.wxMaService.post(url, params);
|
||||
JsonObject jsonObject = GsonParser.parse(responseContent);
|
||||
if (jsonObject.get(ERR_CODE).getAsInt() != 0) {
|
||||
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
|
||||
}
|
||||
return WxMaGsonBuilder.create().fromJson(responseContent, WxMaShopGetOrderResponse.class);
|
||||
return WxMaGsonBuilder.create().fromJson(responseContent, classOfT);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user