Skip to main content

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}