use crate::RequestMethod;
#[allow(unused)]
#[derive(Debug, PartialEq, Clone)]
pub enum AlipayMethod {
WapPay,
PCPay,
AppPay,
UnifiedPay,
PreUnifiedOrder,
CreateUnifiedOrder,
QueryOrder,
CloseOrder,
Refund,
QueryRefund,
CancelOrder,
SystemOauthToken,
OpenAuthTokenApp,
DownloadAlipayCert,
Custom { method: String, response_key: String }
}
#[allow(unused)]
impl RequestMethod for AlipayMethod {
fn get_method(&self) -> String {
match *self {
AlipayMethod::WapPay => String::from("alipay.trade.wap.pay"),
AlipayMethod::PCPay => String::from("alipay.trade.page.pay"),
AlipayMethod::AppPay => String::from("alipay.trade.app.pay"),
AlipayMethod::UnifiedPay => String::from("alipay.trade.pay"),
AlipayMethod::PreUnifiedOrder => String::from("alipay.trade.precreate"),
AlipayMethod::CreateUnifiedOrder => String::from("alipay.trade.create"),
AlipayMethod::QueryOrder => String::from("alipay.trade.query"),
AlipayMethod::CloseOrder => String::from("alipay.trade.close"),
AlipayMethod::Refund => String::from("alipay.trade.refund"),
AlipayMethod::QueryRefund => String::from("alipay.trade.fastpay.refund.query"),
AlipayMethod::CancelOrder => String::from("alipay.trade.cancel"),
AlipayMethod::SystemOauthToken => String::from("alipay.system.oauth.token"),
AlipayMethod::DownloadAlipayCert => String::from("alipay.open.app.alipaycert.download"),
AlipayMethod::OpenAuthTokenApp => String::from("alipay.open.auth.token.app"),
AlipayMethod::Custom{ ref method, .. } => method.to_string()
}
}
fn get_response_key(&self) -> String {
match *self {
AlipayMethod::WapPay => String::from("alipay_trade_wap_pay_response"),
AlipayMethod::PCPay => String::from("alipay_trade_page_pay_response"),
AlipayMethod::AppPay => String::from("alipay_trade_app_pay_response"),
AlipayMethod::UnifiedPay => String::from("alipay_trade_pay_response"),
AlipayMethod::PreUnifiedOrder => String::from("alipay_trade_precreate_response"),
AlipayMethod::CreateUnifiedOrder => String::from("alipay_trade_create_response"),
AlipayMethod::QueryOrder => String::from("alipay_trade_query_response"),
AlipayMethod::CloseOrder => String::from("alipay_trade_close_response"),
AlipayMethod::Refund => String::from("alipay_trade_refund_response"),
AlipayMethod::QueryRefund => String::from("alipay_trade_fastpay_refund_query_response"),
AlipayMethod::CancelOrder => String::from("alipay_trade_cancel_response"),
AlipayMethod::SystemOauthToken => String::from("alipay_system_oauth_token_response"),
AlipayMethod::OpenAuthTokenApp => String::from("alipay_open_auth_token_app_response"),
AlipayMethod::DownloadAlipayCert => String::from("alipay_open_app_alipaycert_download_response"),
AlipayMethod::Custom{ ref response_key, .. } => response_key.to_string()
}
}
}