增加小程序物流接口

This commit is contained in:
lxy 2025-03-11 14:39:01 +08:00
parent 8f9271bdfd
commit 05382ad5b2
8 changed files with 296 additions and 18 deletions

View File

@ -52,7 +52,7 @@ type UploadShippingInfo = {
};
}>;
};
import { AddExpressOrderData, CancelExpressOrderData } from '../../types/Wechat';
import { AddExpressOrderData, CancelExpressOrderData, getExpressPathData, getWaybillTokenData } from '../../types/Wechat';
export declare class WechatMpInstance {
appId: string;
appSecret?: string;
@ -195,5 +195,30 @@ export declare class WechatMpInstance {
* @param data
*/
cancelExpressOrder(data: CancelExpressOrderData): Promise<void>;
/**
*
* https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/getPath.html
* @param data
*/
getExpressPath(data: getExpressPathData): Promise<{
path_item_num: number;
path_item_list: Array<{
action_time: number;
action_type: number;
action_msg: string;
}>;
}>;
/**
* token
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
getWaybillToken(data: getWaybillTokenData): Promise<string>;
/**
*
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
getExpressState(waybillToken: string): Promise<any>;
}
export {};

View File

@ -420,4 +420,50 @@ export class WechatMpInstance {
body: JSON.stringify(data),
});
}
/**
* 查询运单轨迹
* https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/getPath.html
* @param data
*/
async getExpressPath(data) {
const token = await this.getAccessToken();
const result = await this.access(`https://api.weixin.qq.com/cgi-bin/express/business/path/get?access_token=${token}`, {
method: 'POST',
body: JSON.stringify(data),
});
const { path_item_num, path_item_list } = result;
return {
path_item_num,
path_item_list,
};
}
/**
* 获取运单token
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
async getWaybillToken(data) {
const token = await this.getAccessToken();
const result = await this.access(`https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/trace_waybill?access_token=${token}`, {
method: 'POST',
body: JSON.stringify(data),
});
const { waybill_token } = result;
return waybill_token;
}
/**
* 获取运单状态
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
async getExpressState(waybillToken) {
const token = await this.getAccessToken();
const result = await this.access(`https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/query_trace?access_token=${token}`, {
method: 'POST',
body: JSON.stringify({
waybill_token: waybillToken,
}),
});
return result;
}
}

21
es/types/Wechat.d.ts vendored
View File

@ -110,4 +110,25 @@ export type CancelExpressOrderData = {
waybill_id: string;
order_id: string;
};
export type getExpressPathData = {
openId?: string;
delivery_id: string;
waybill_id: string;
};
export type getWaybillTokenData = {
openId?: string;
sender_phone?: string;
receiver_phone: string;
delivery_id?: string;
waybill_id: string;
goods_info: {
detail_list: {
goods_name: string;
goods_img_url: string;
goods_desc?: string;
}[];
};
trans_id?: string;
order_detail_path?: string;
};
export {};

View File

@ -52,7 +52,7 @@ type UploadShippingInfo = {
};
}>;
};
import { AddExpressOrderData, CancelExpressOrderData } from '../../types/Wechat';
import { AddExpressOrderData, CancelExpressOrderData, getExpressPathData, getWaybillTokenData } from '../../types/Wechat';
export declare class WechatMpInstance {
appId: string;
appSecret?: string;
@ -195,5 +195,30 @@ export declare class WechatMpInstance {
* @param data
*/
cancelExpressOrder(data: CancelExpressOrderData): Promise<void>;
/**
*
* https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/getPath.html
* @param data
*/
getExpressPath(data: getExpressPathData): Promise<{
path_item_num: number;
path_item_list: Array<{
action_time: number;
action_type: number;
action_msg: string;
}>;
}>;
/**
* token
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
getWaybillToken(data: getWaybillTokenData): Promise<string>;
/**
*
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
getExpressState(waybillToken: string): Promise<any>;
}
export {};

View File

@ -424,5 +424,51 @@ class WechatMpInstance {
body: JSON.stringify(data),
});
}
/**
* 查询运单轨迹
* https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/getPath.html
* @param data
*/
async getExpressPath(data) {
const token = await this.getAccessToken();
const result = await this.access(`https://api.weixin.qq.com/cgi-bin/express/business/path/get?access_token=${token}`, {
method: 'POST',
body: JSON.stringify(data),
});
const { path_item_num, path_item_list } = result;
return {
path_item_num,
path_item_list,
};
}
/**
* 获取运单token
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
async getWaybillToken(data) {
const token = await this.getAccessToken();
const result = await this.access(`https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/trace_waybill?access_token=${token}`, {
method: 'POST',
body: JSON.stringify(data),
});
const { waybill_token } = result;
return waybill_token;
}
/**
* 获取运单状态
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
async getExpressState(waybillToken) {
const token = await this.getAccessToken();
const result = await this.access(`https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/query_trace?access_token=${token}`, {
method: 'POST',
body: JSON.stringify({
waybill_token: waybillToken,
}),
});
return result;
}
}
exports.WechatMpInstance = WechatMpInstance;

21
lib/types/Wechat.d.ts vendored
View File

@ -110,4 +110,25 @@ export type CancelExpressOrderData = {
waybill_id: string;
order_id: string;
};
export type getExpressPathData = {
openId?: string;
delivery_id: string;
waybill_id: string;
};
export type getWaybillTokenData = {
openId?: string;
sender_phone?: string;
receiver_phone: string;
delivery_id?: string;
waybill_id: string;
goods_info: {
detail_list: {
goods_name: string;
goods_img_url: string;
goods_desc?: string;
}[];
};
trans_id?: string;
order_detail_path?: string;
};
export {};

View File

@ -70,7 +70,7 @@ type UploadShippingInfo = {
}>;
}
import { AddExpressOrderData, CancelExpressOrderData } from '../../types/Wechat';
import { AddExpressOrderData, CancelExpressOrderData, getExpressPathData, getWaybillTokenData } from '../../types/Wechat';
export class WechatMpInstance {
appId: string;
@ -695,4 +695,71 @@ export class WechatMpInstance {
}
);
}
/**
*
* https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/getPath.html
* @param data
*/
async getExpressPath(data: getExpressPathData) {
const token = await this.getAccessToken();
const result = await this.access(
`https://api.weixin.qq.com/cgi-bin/express/business/path/get?access_token=${token}`,
{
method: 'POST',
body: JSON.stringify(data),
}
);
const { path_item_num, path_item_list } = result;
return {
path_item_num,
path_item_list,
} as {
path_item_num: number;
path_item_list: Array<{
action_time: number,
action_type: number,
action_msg: string,
}>
}
}
/**
* token
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
async getWaybillToken(data: getWaybillTokenData) {
const token = await this.getAccessToken();
const result = await this.access(
`https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/trace_waybill?access_token=${token}`,
{
method: 'POST',
body: JSON.stringify(data),
}
);
const { waybill_token } = result;
return waybill_token as string;
}
/**
*
* https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
* @param data
*/
async getExpressState(waybillToken: string) {
const token = await this.getAccessToken();
const result = await this.access(
`https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/query_trace?access_token=${token}`,
{
method: 'POST',
body: JSON.stringify({
waybill_token: waybillToken,
}),
}
);
return result;
}
}

View File

@ -142,3 +142,30 @@ export type CancelExpressOrderData = {
waybill_id: string;
order_id: string;
};
// 查询运单轨迹
// https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/express/express-by-business/getPath.html
export type getExpressPathData = {
openId?: string;
delivery_id: string,
waybill_id: string,
}
//传运单
// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html
export type getWaybillTokenData = {
openId?: string;
sender_phone?: string;
receiver_phone: string;
delivery_id?: string,
waybill_id: string,
goods_info: {
detail_list: {
goods_name: string,
goods_img_url: string,
goods_desc?: string,
}[]
},
trans_id?: string, //当前非必填 https://developers.weixin.qq.com/community/develop/doc/000e2e2c284a089a965d8f2765bc00?highLine=trans_id
order_detail_path?: string,
}