wechat_pay_rust_sdk_gs/
response.rs1use serde::de::DeserializeOwned;
2use serde::{Deserialize, Serialize};
3
4pub trait ResponseTrait: DeserializeOwned {}
5
6#[derive(Debug, Deserialize)]
7pub struct NativeResponse {
8 pub code: Option<String>,
9 pub message: Option<String>,
10 pub code_url: Option<String>,
12}
13
14impl ResponseTrait for NativeResponse {}
15
16#[derive(Debug, Deserialize)]
17pub struct JsapiResponse {
18 pub code: Option<String>,
19 pub message: Option<String>,
20 pub prepay_id: Option<String>,
22 pub sign_data: Option<SignData>,
24}
25
26#[derive(Debug, Serialize, Deserialize)]
27pub struct SignData {
28 pub app_id: String,
29 pub sign_type: String,
30 pub package: String,
31 pub nonce_str: String,
32 pub timestamp: String,
33 pub pay_sign: String,
34}
35
36impl ResponseTrait for JsapiResponse {}
37
38#[derive(Debug, Deserialize)]
39pub struct AppResponse {
40 pub code: Option<String>,
41 pub message: Option<String>,
42 pub prepay_id: Option<String>,
44 pub sign_data: Option<SignData>,
46}
47
48impl ResponseTrait for AppResponse {}
49
50#[derive(Debug, Deserialize)]
51pub struct MicroResponse {
52 pub code: Option<String>,
53 pub message: Option<String>,
54 pub prepay_id: Option<String>,
56 pub sign_data: Option<SignData>,
58}
59
60impl ResponseTrait for MicroResponse {}
61
62#[derive(Debug, Deserialize)]
63pub struct H5Response {
64 pub code: Option<String>,
65 pub message: Option<String>,
66 pub h5_url: Option<String>,
69}
70
71impl ResponseTrait for H5Response {}
72
73#[derive(Debug, Clone, Deserialize)]
74pub struct EncryptCertificate {
75 pub algorithm: String,
76 pub nonce: String,
77 pub associated_data: String,
78 pub ciphertext: String,
79}
80
81#[derive(Debug, Clone, Deserialize)]
82pub struct Certificate {
83 pub serial_no: String,
84 pub effective_time: String,
85 pub expire_time: String,
86 pub encrypt_certificate: EncryptCertificate,
87}
88
89#[derive(Debug, Deserialize)]
90pub struct CertificateResponse {
91 pub data: Option<Vec<Certificate>>,
92}
93
94impl ResponseTrait for CertificateResponse {}