rust_pay_wf 0.11.3

Rust 微信、支付宝、银联支付SDK
Documentation
use std::sync::Arc;
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug)]
pub enum Mode {
    Normal,
    Service,
    Sandbox,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct WechatConfig {
    pub mchid: String,
    pub appid: Option<String>,//主商户appid,服务号
    pub serial_no: String,
    pub private_key_pem: String,
    pub api_v3_key: String,
    pub platform_public_key_pem: Option<String>,
    pub appid_mp: Option<String>,
    pub appid_mini: Option<String>,
    pub appid_app: Option<String>,
    pub notify_url: Option<String>,
    pub sub_mchid: Option<String>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct AlipayConfig {
    pub app_id: String,
    pub private_key_pem: String,

    // 公钥模式
    pub alipay_public_key: Option<String>,

    // 证书模式
    pub app_cert_path: Option<String>,
    pub alipay_cert_path: Option<String>,
    pub alipay_root_cert_path: Option<String>,

    pub charset: String,
    pub sign_type: String,
    pub gateway: String,

    // 服务商配置
    pub sys_service_provider_id: Option<String>,
    pub app_auth_token: Option<String>,

    //回调通知
    pub notify_url: Option<String>,
}

#[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct PayConfigOverride {
    pub wechat: Option<WechatConfigOverride>,
    pub alipay: Option<AlipayConfigOverride>,
}

#[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct WechatConfigOverride {
    pub sub_mchid: Option<String>,
    // 其他可覆盖的微信配置字段...
}

#[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct AlipayConfigOverride {
    // 服务商配置
    pub app_auth_token: Option<String>,
    // 其他可覆盖的支付宝配置字段...
}

#[derive(Clone)]
pub struct UnionpayConfig {
    pub mer_id: String,
}
#[derive(Clone)]
pub struct PayConfig {
    pub mode: Mode,
    pub wechat: Option<Arc<WechatConfig>>,
    pub alipay: Option<Arc<AlipayConfig>>,
    pub unionpay: Option<Arc<UnionpayConfig>>,
}