Documentation
use crate::PayMode;
use json::JsonValue;

#[derive(Clone)]
pub struct AliPay {
    pub corp_id: String,
    pub agent_id: String,
    pub secret: String,
    pub access_token: String,
    pub expires_in: i64,
}

impl PayMode for AliPay {
    fn login(&self, _code: &str) -> Result<JsonValue, String> {
        todo!()
    }

    fn jsapi(
        &mut self,
        _sub_mchid: &str,
        _out_trade_no: &str,
        _description: &str,
        _total_fee: f64,
        _notify_url: &str,
        _sp_openid: &str,
    ) -> Result<JsonValue, String> {
        todo!()
    }

    fn pay_query(&mut self, _out_trade_no: &str, _sub_mchid: &str) -> Result<JsonValue, String> {
        todo!()
    }

    fn refund(&mut self, _sub_mchid: &str, _out_trade_no: &str, _transaction_id: &str, _out_refund_no: &str, _amount: f64, _total: f64, _currency: &str) -> Result<JsonValue, String> {
        todo!()
    }

    fn pay_notify(&mut self,  _nonce: &str, _ciphertext: &str,_associated_data:&str) -> Result<JsonValue, String> {
        todo!()
    }

    fn refund_notify(&mut self, _nonce: &str, _ciphertext: &str, _associated_data: &str) -> Result<JsonValue, String> {
        todo!()
    }

    fn refund_query(&mut self, _out_refund_no: &str, _sub_mchid: &str) -> Result<JsonValue, String> {
        todo!()
    }
}