use serde::{Deserialize, Serialize};
use serde_json::Value;
use crate::{wxmini_api_get, wxmini_api_post, wxmini_api_post_form};
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchdownloadfileFileListRequestItem {
pub fileid: String,
pub max_age: u32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchdownloadfileRequestBody {
pub env: String,
pub file_list: Vec<BatchdownloadfileFileListRequestItem>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchdownloadfileFileListResponseItem {
pub fileid: String,
pub download_url: String,
pub status: u32,
pub errmsg: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchdownloadfileResponseData {
pub file_list: Vec<BatchdownloadfileFileListResponseItem>,
}
wxmini_api_post!(
request_batch_download_file,
"api.weixin.qq.com/tcb/batchdownloadfile",
(access_token: Option<&str>),
&BatchdownloadfileRequestBody,
BatchdownloadfileResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct MediaSecCheckParams {
pub media_url: String,
pub media_type: u8,
pub scene: u8,
pub openid: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MediaSecCheckBody {
#[serde(flatten)]
pub params: MediaSecCheckParams,
pub version: u8,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MediaSecCheckResponseData {
pub trace_id: String,
}
wxmini_api_post!(
request_media_sec_check,
"api.weixin.qq.com/wxa/media_check_async",
(access_token: Option<&str>),
&MediaSecCheckBody,
MediaSecCheckResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct MsgSecCheckParams {
pub content: String,
pub scene: u8,
pub openid: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MsgSecCheckBody {
#[serde(flatten)]
pub params: MsgSecCheckParams,
pub version: u8,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MsgSecCheckDetailItem {
pub strategy: String,
pub errcode: i32,
pub suggest: Option<String>,
pub label: Option<u32>,
pub keyword: Option<String>,
pub prob: Option<u8>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MsgSecCheckResult {
pub suggest: String,
pub label: u32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MsgSecCheckResponseData {
pub detail: Vec<MsgSecCheckDetailItem>,
pub trace_id: String,
pub result: MsgSecCheckResult,
}
wxmini_api_post!(
request_msg_sec_check,
"api.weixin.qq.com/wxa/msg_sec_check",
(access_token: Option<&str>),
&MsgSecCheckBody,
MsgSecCheckResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct SubscribeMessageRequestBody {
pub template_id: String,
pub touser: String,
pub data: Value,
pub page: Option<String>,
pub miniprogram_state: Option<String>,
pub lang: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SubscribeMessageResponseData {}
wxmini_api_post!(
request_subscribe_message,
"api.weixin.qq.com/cgi-bin/message/subscribe/send",
(access_token: Option<&str>),
&SubscribeMessageRequestBody,
SubscribeMessageResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct UploadfileRequestBody {
pub env: String,
pub path: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct UploadfileResponseData {
pub url: String,
pub token: String,
pub authorization: String,
pub file_id: String,
pub cos_file_id: String,
}
wxmini_api_post!(
request_uploadfile,
"api.weixin.qq.com/tcb/uploadfile",
(access_token: Option<&str>),
&UploadfileRequestBody,
UploadfileResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchdeletefileRequestBody {
pub env: String,
pub fileid_list: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BatchdeletefileResponseData {}
wxmini_api_post!(
request_batchdeletefile,
"api.weixin.qq.com/tcb/batchdeletefile",
(access_token: Option<&str>),
&BatchdeletefileRequestBody,
BatchdeletefileResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct GetwxacodeUnlimitRequestBody {
pub scene: String,
pub page: Option<String>,
pub check_path: Option<bool>,
pub env_version: Option<String>,
pub width: Option<u32>,
pub auto_color: Option<bool>,
pub line_color: Option<Value>,
pub is_hyaline: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GetwxacodeUnlimitesponseData {
pub buffer: Vec<u8>,
}
wxmini_api_post!(
request_getwxacodeunlimit,
"api.weixin.qq.com/wxa/getwxacodeunlimit",
(access_token: Option<&str>),
&GetwxacodeUnlimitRequestBody,
GetwxacodeUnlimitesponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct CreatewxaqrcodeRequestBody {
pub path: String,
pub width: Option<u32>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CreatewxaqrcodeResponseData {
pub buffer: Vec<u8>,
}
wxmini_api_post!(
request_createwxaqrcode,
"api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode",
(access_token: Option<&str>),
&CreatewxaqrcodeRequestBody,
CreatewxaqrcodeResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateSchemeJumpWxa {
pub path: Option<String>,
pub query: Option<String>,
pub env_version: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateSchemeRequestBody {
pub jump_wxa: Option<GenerateSchemeJumpWxa>,
pub expire_time: Option<i32>,
pub expire_type: Option<i32>,
pub expire_interval: Option<i32>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateSchemeResponseData {
pub openlink: String,
}
wxmini_api_post!(
request_generatescheme,
"api.weixin.qq.com/wxa/generatescheme",
(access_token: Option<&str>),
&GenerateSchemeRequestBody,
GenerateSchemeResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateShortLinkRequestBody {
pub page_url: String,
pub page_title: Option<String>,
pub is_permanent: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GenerateShortLinkResponseData {
pub link: String,
}
wxmini_api_post!(
request_genwxashortlink,
"api.weixin.qq.com/wxa/genwxashortlink",
(access_token: Option<&str>),
&GenerateShortLinkRequestBody,
GenerateShortLinkResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct ScanQrcodeRequestBody {
pub img_url: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ScanQrcodeCodeResult {
pub type_name: String,
pub data: String,
pub pos: Value,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ScanQrcodeImgSize {
pub w: i32,
pub h: i32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ScanQrcodeResponseData {
pub code_results: Vec<ScanQrcodeCodeResult>,
pub img_size: ScanQrcodeImgSize,
}
wxmini_api_post_form!(
request_scan_qrcode,
"api.weixin.qq.com/cv/img/qrcode",
(access_token: Option<&str>),
&ScanQrcodeRequestBody,
ScanQrcodeResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct Code2SessionResponseData {
pub openid: String,
pub session_key: String,
pub unionid: Option<String>,
}
wxmini_api_get!(
request_code2session,
"api.weixin.qq.com/sns/jscode2session",
(appid: Option<&str>, secret: Option<&str>, js_code: Option<&str>, grant_type: Option<&str>),
Code2SessionResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct CheckSessionKeyResponseData {}
wxmini_api_get!(
request_check_session_key,
"api.weixin.qq.com/wxa/checksession",
(access_token: Option<&str>, signature: Option<&str>, openid: Option<&str>, sig_method: Option<&str>),
CheckSessionKeyResponseData
);
#[derive(Debug, Serialize, Deserialize)]
pub struct ResetUserSessionKeyResponseData {
pub openid: String,
pub session_key: String,
}
wxmini_api_get!(
request_reset_user_session_key,
"api.weixin.qq.com/wxa/resetusersessionkey",
(access_token: Option<&str>, openid: Option<&str>, sig_method: Option<&str>, signature: Option<&str>),
ResetUserSessionKeyResponseData
);