Skip to content

微信客服 接待人员管理,会话分配与消息收发,基础信息获取等 &素材上传 #2574

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Apr 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,7 @@ public interface WxMaExpressService {
* @throws WxErrorException 模拟更新订单状态失败时返回
*/
void testUpdateOrder(WxMaExpressTestUpdateOrderRequest wxMaExpressTestUpdateOrderRequest) throws WxErrorException;



}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
import cn.binarywang.wx.miniapp.bean.delivery.GetOrderResponse;
import cn.binarywang.wx.miniapp.bean.delivery.MockUpdateOrderRequest;
import cn.binarywang.wx.miniapp.bean.delivery.MockUpdateOrderResponse;
import cn.binarywang.wx.miniapp.bean.delivery.QueryWaybillTraceRequest;
import cn.binarywang.wx.miniapp.bean.delivery.QueryWaybillTraceResponse;
import cn.binarywang.wx.miniapp.bean.delivery.TraceWaybillRequest;
import cn.binarywang.wx.miniapp.bean.delivery.TraceWaybillResponse;
import me.chanjar.weixin.common.error.WxErrorException;

/**
Expand All @@ -25,76 +29,104 @@
*/
public interface WxMaImmediateDeliveryService {

/**
* 拉取已绑定账号.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.getBindAccount.html
* </pre>
*
* @return 响应
* @throws WxErrorException 异常
*/
BindAccountResponse getBindAccount() throws WxErrorException;
/**
* 拉取已绑定账号.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.getBindAccount.html
* </pre>
*
* @return 响应
* @throws WxErrorException 异常
*/
BindAccountResponse getBindAccount() throws WxErrorException;

/**
* 下配送单接口.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.addOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
AddOrderResponse addOrder(AddOrderRequest request) throws WxErrorException;
/**
* 下配送单接口.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.addOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
AddOrderResponse addOrder(AddOrderRequest request) throws WxErrorException;

/**
* 拉取配送单信息.
* <pre>
* 商家可使用本接口查询某一配送单的配送状态,便于商家掌握配送情况。
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.getOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
GetOrderResponse getOrder(GetOrderRequest request) throws WxErrorException;
/**
* 拉取配送单信息.
* <pre>
* 商家可使用本接口查询某一配送单的配送状态,便于商家掌握配送情况。
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.getOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
GetOrderResponse getOrder(GetOrderRequest request) throws WxErrorException;

/**
* 取消配送单接口.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.cancelOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
CancelOrderResponse cancelOrder(CancelOrderRequest request) throws WxErrorException;
/**
* 取消配送单接口.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.cancelOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
CancelOrderResponse cancelOrder(CancelOrderRequest request) throws WxErrorException;

/**
* 异常件退回商家商家确认收货接口.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.abnormalConfirm.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
AbnormalConfirmResponse abnormalConfirm(AbnormalConfirmRequest request) throws WxErrorException;
/**
* 异常件退回商家商家确认收货接口.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.abnormalConfirm.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
AbnormalConfirmResponse abnormalConfirm(AbnormalConfirmRequest request) throws WxErrorException;

/**
* 模拟配送公司更新配送单状态, 该接口只用于沙盒环境,即订单并没有真实流转到运力方.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.mockUpdateOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
MockUpdateOrderResponse mockUpdateOrder(MockUpdateOrderRequest request) throws WxErrorException;


/**
* 商户使用此接口向微信提供某交易单号对应的运单号。微信后台会跟踪运单的状态变化
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/express_search.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
TraceWaybillResponse traceWaybill(TraceWaybillRequest request) throws WxErrorException;


/**
* 商户在调用完trace_waybill接口后,可以使用本接口查询到对应运单的详情信息
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/express_search.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
QueryWaybillTraceResponse queryWaybillTrace(QueryWaybillTraceRequest request)
throws WxErrorException;

/**
* 模拟配送公司更新配送单状态, 该接口只用于沙盒环境,即订单并没有真实流转到运力方.
* <pre>
* 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/immediate-delivery/by-business/immediateDelivery.mockUpdateOrder.html
* </pre>
*
* @param request request
* @return 响应
* @throws WxErrorException 异常
*/
MockUpdateOrderResponse mockUpdateOrder(MockUpdateOrderRequest request) throws WxErrorException;

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,14 @@
import cn.binarywang.wx.miniapp.bean.delivery.GetOrderResponse;
import cn.binarywang.wx.miniapp.bean.delivery.MockUpdateOrderRequest;
import cn.binarywang.wx.miniapp.bean.delivery.MockUpdateOrderResponse;
import cn.binarywang.wx.miniapp.bean.delivery.QueryWaybillTraceRequest;
import cn.binarywang.wx.miniapp.bean.delivery.QueryWaybillTraceResponse;
import cn.binarywang.wx.miniapp.bean.delivery.TraceWaybillRequest;
import cn.binarywang.wx.miniapp.bean.delivery.TraceWaybillResponse;
import cn.binarywang.wx.miniapp.bean.delivery.base.WxMaDeliveryBaseResponse;
import cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants;
import cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.InstantDelivery;
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import javassist.bytecode.ConstPool;
Expand Down Expand Up @@ -157,6 +163,29 @@ public MockUpdateOrderResponse mockUpdateOrder(final MockUpdateOrderRequest requ
MockUpdateOrderResponse.class);
}

@Override
public TraceWaybillResponse traceWaybill(
TraceWaybillRequest request) throws WxErrorException {
String responseContent = this.wxMaService.post(InstantDelivery.TRACE_WAYBILL_URL, request);
TraceWaybillResponse response = TraceWaybillResponse.fromJson(responseContent);
if (response.getErrcode() == -1) {
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
}
return response;

}

@Override
public QueryWaybillTraceResponse queryWaybillTrace(
QueryWaybillTraceRequest request) throws WxErrorException {
String responseContent = this.wxMaService.post(InstantDelivery.QUERY_WAYBILL_TRACE_URL, request);
QueryWaybillTraceResponse response = QueryWaybillTraceResponse.fromJson(responseContent);
if (response.getErrcode() == -1) {
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
}
return response;
}

/**
* 解析响应.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package cn.binarywang.wx.miniapp.bean.delivery;


import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
* <pre>
* 查询运单接口 query_trace
*
* 商户在调用完trace_waybill接口后,可以使用本接口查询到对应运单的详情信息
* </pre>
*
* @author boris
* @since 2022-04-01
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class QueryWaybillTraceRequest implements Serializable {

private static final long serialVersionUID = -7538739003766268386L;


/**
* 查询id
* <pre>
* 是否必填: 是
* 描述: 可以从 传运单接口 trace_waybill 取数据
* </pre>
*/
@SerializedName("waybill_token")
private String waybillToken;

public String toJson() {
return WxMaGsonBuilder.create().toJson(this);
}
}
Loading