wx_rust_open/bean/wx_open_component_access_token.rs
1//! component_access_token 数据对象。
2//!
3//! 对应 Java `me.chanjar.weixin.open.bean.WxOpenComponentAccessToken`:
4//! `POST /cgi-bin/component/api_component_token` 的响应体(Gson 字段映射
5//! 直接对应 JSON 键名,Rust 以 serde 派生表达同一线格式)。
6
7use serde::{Deserialize, Serialize};
8
9/// component_access_token 响应体。
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct WxOpenComponentAccessToken {
12 /// component_access_token 值(对应 Java `componentAccessToken` 字段)。
13 #[serde(rename = "component_access_token")]
14 pub component_access_token: String,
15 /// 有效期(秒),默认 -1(对应 Java `expiresIn = -1`)。
16 #[serde(rename = "expires_in")]
17 pub expires_in: i32,
18}
19
20impl WxOpenComponentAccessToken {
21 /// 从 JSON 解析(对应 Java 静态方法 `fromJson(String)`,
22 /// `WxOpenGsonBuilder` → serde_json)。
23 pub fn from_json(json: &str) -> Result<Self, serde_json::Error> {
24 serde_json::from_str(json)
25 }
26
27 /// component_access_token 值(对应 Java `getComponentAccessToken()`)。
28 pub fn component_access_token(&self) -> &str {
29 &self.component_access_token
30 }
31
32 /// 有效期(秒)(对应 Java `getExpiresIn()`)。
33 pub fn expires_in(&self) -> i32 {
34 self.expires_in
35 }
36}