Current section

Files

Jump to
receipt_decoder lib receipt_decoder.ex
Raw

lib/receipt_decoder.ex

defmodule ReceiptDecoder do
alias ReceiptDecoder.Extractor
alias ReceiptDecoder.Parser
@doc """
Decode iOS App receipt
## Example
```elixir
iex> ReceiptDecoder.decode(BASE64_ENCODED_RECEIPT)
%{application_version: "1241", ...}
````
"""
@spec decode(String.t) :: {:ok, map} | {:error, any}
def decode(base64_receipt) do
with(
{:ok, payload} <- Extractor.get_payload(base64_receipt),
data <- Parser.parse(payload)
) do
{:ok, data}
else
err -> err
end
end
end