use std::env;
use midtransclient::{MidtransError, CoreApi};
use serde_json::json;
fn main() -> Result<(), MidtransError> {
let server_key = env::var("MIDTRANS_SERVER_KEY").expect("SERVER_KEY NOT FOUND");
let client_key = env::var("MIDTRANS_CLIENT_KEY").expect("CLIENT_KEY NOT FOUND");
let core = CoreApi::new(false, server_key)
.client_key(client_key.clone())
.build()?;
let parameters = json!({
"card_number": "5264 2210 3887 4659",
"card_exp_month": "12",
"card_exp_year": "2025",
"card_cvv": "123",
"client_key": client_key
}).to_string();
let card_token_response = core.card_token(¶meters)?;
let cc_token = card_token_response["token_id"].as_str().unwrap();
let param = json!({
"payment_type": "credit_card",
"transaction_details": {
"gross_amount": 12145,
"order_id": "test-transaction-54321",
},
"credit_card":{
"token_id": cc_token
}
}).to_string();
let charge_response = core.charge(¶m)?;
println!("Charge Response: {:#?}", charge_response);
Ok(())
}