Apple App Store Server Rust Library

The Rust server library for the App Store Server API and App Store Server Notifications

⚠️ Beta ⚠️

This software is currently in Beta testing. Therefore, it should only be used for testing purposes, like for the Sandbox environment. API signatures may change between releases and signature verification may receive security updates.

Installation

Specify app-store-server-library in your project's Cargo.toml file, under the [dependencies] section:

rust [dependencies] app-store-server-library = "0.5.0" Check crates.io for the latest version number.

Usage

Verification Usage

``rust // .unwrap() used for example purposes only let root_cert = "apple-root-cert-in-base-base64-format"; // https://www.apple.com/certificateauthority/AppleRootCA-G3.cer let root_cert_der = root_cert.as_der_bytes().unwrap(); // Usebase64` crate to decode base64 string into bytes

let verifier = SignedDataVerifier::new( vec![rootcertder], // Vector of root certificates Environment::Sandbox, // Environment "app.superapp.apple".to_string(), // Bundle id Some(12345678), // App id );

let payload = "signed-payload"; let decodedpayload = verifier.verifyanddecodenotification(payload).unwrap(); ```

Promotional Offer Signature Creation

```rust // .unwrap() used for example purposes only let privatekey = includestr!("../assets/SubscriptionKeyL256SYR32L.p8"); let creator = PromotionalOfferSignatureCreator::new(privatekey, "L256SYR32L".tostring(), "com.test.app".tostring()).unwrap(); let signature: String = creator.createsignature("com.test.product", "com.test.offer", uuid::Uuid::newv4().tostring().asstr(), &uuid::Uuid::newv4(), i64::tryfrom(system_timestamp()).unwrap()).unwrap();

```

Documentation

References