Current section
Files
Jump to
Current section
Files
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