Skip to content

mnyify/app_store_server_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

app-store-server-api

A Ruby client for the App Store Server API.

Gem Version

Features

  • Transaction history, subscription status
  • Notification test and history endpoints
  • Manages authentication tokens for you
  • Helpers to decode JWS items
  • Performs certificate validation against Apple's CA.

Requirements

Ruby 3.x

Installation

gem install app_store_server_api

Usage

Prerequisites

To get started, you must obtain the following:

Configure

In your Rails application, create a client configure

# my_app/config/app_store_server.yml
default: &default
  private_key: |
    -----BEGIN PRIVATE KEY-----
  key_id: S4AZ693A4A
  issuer_id: fd02853a-1290-4854-875e-918c86459b3e
  bundle_id: com.myapp.app
  environment: sandbox

development:
  <<: *default

test:
  <<: *default

production:
  <<: *default

Load the configure

# my_app/config/application.rb

config.app_store_server = config_for :app_store_server

Create a global client

# my_app/config/initializers/app_store_server_api.rb

AppStoreServerApiClient = AppStoreServerApi::Client.new(**Rails.configuration.app_store_server)

API

Get Transaction History

data = client.get_transaction_history(transaction_id,
  params: {
    sort: "DESCENDING"
  })

transactions = AppStoreServerApi::Utils::Decoder.decode_transactions signed_transactions: data["signedTransactions"]

Get Transaction Info

client.get_transaction_info transaction_id

Get All Subscription Statuses

response = client.get_all_subscription_statuses transaction_id

signed = response["data"].first["lastTransactions"].first["signedTransactionInfo"]

transaction = AppStoreServerApi::Utils::Decoder.decode_transaction signed_transaction: signed

Request a Test Notification

client.request_a_test_notification

Utils

  • AppStoreServerApi::Utils::Decoder.decode_transaction
  • AppStoreServerApi::Utils::Decoder.decode_jws!

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the AppStoreServerApi project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

About

A Ruby client for the App Store Server API🚀

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published