sumup-rs 0.2.0

A comprehensive, type-safe Rust client for the SumUp API with full async/await support
Documentation
use std::io::{self, Write};

fn main() {
    println!("🔧 3DS TESTING SETUP");
    println!("===================");
    println!();
    println!(
        "To properly test 3DS authentication, you need a webhook URL to capture return calls."
    );
    println!();
    println!("📋 SETUP STEPS:");
    println!("1. Go to https://webhook.site");
    println!("2. Copy your unique webhook URL");
    println!("3. Update the return_url in examples/3ds_payment_demo.rs");
    println!();
    println!("💡 EXAMPLE:");
    println!("   return_url: Some(\"https://webhook.site/abc123-def456\".to_string()),");
    println!();
    println!("🔍 3DS TEST CARDS:");
    println!("   - 4000000000003220 (Visa - 3DS Authentication Required)");
    println!("   - 4000000000009995 (Visa - 3DS with Insufficient Funds)");
    println!("   - 4000000000000002 (Visa - 3DS Declined)");
    println!("   - 4000000000009987 (Visa - 3DS Lost Card)");
    println!("   - 4000000000009979 (Visa - 3DS Stolen Card)");
    println!();
    println!("⚠️  IMPORTANT NOTES:");
    println!("   - Sandbox 3DS behavior may be limited");
    println!("   - Real 3DS testing requires production environment");
    println!("   - Test cards may not always trigger 3DS in sandbox");
    println!();
    println!("🚀 TO RUN THE DEMO:");
    println!("   cargo run --example 3ds_payment_demo");
    println!();

    print!("Press Enter to continue...");
    io::stdout().flush().unwrap();
    io::stdin().read_line(&mut String::new()).unwrap();
}