use snippe::models::common::Customer;
use snippe::models::payment::{CreatePaymentRequest, MobilePayment};
use snippe::{Client, IdempotencyKey};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("SNIPPE_API_KEY")
.expect("set SNIPPE_API_KEY to a Snippe API key with collection:create scope");
let client = Client::new(api_key)?;
let request = CreatePaymentRequest::Mobile(
MobilePayment::new(
500,
"255781000000",
Customer::new("Jane", "Doe", "jane@example.com"),
)
.with_webhook_url("https://yoursite.com/webhooks/snippe"),
);
let key = IdempotencyKey::new("ord-12345-att-1")?;
let payment = client.payments().create(&request, Some(&key)).await?;
println!("created payment {} (status: {:?})", payment.reference, payment.status);
println!("expires at {}", payment.expires_at);
Ok(())
}