ExUssd (ExUssd v0.1.1) View Source

USSD interation

Link to this section Summary

Functions

Example

iex> ExUssd.end_session(session_id: "session_01")
{:error, :not_found}

Navigation

This a helper function that helps simulate ussd call

Link to this section Functions

Example

iex> ExUssd.end_session(session_id: "session_01")
{:error, :not_found}

Specs

goto(
  internal_routing: ExUssd.Ussd.internal_routing(),
  menu: ExUssd.Ussd.menu(),
  api_parameters: ExUssd.Ussd.api_parameters()
) :: any()

Navigation

Configuration

Add below config to dev.exs / prod.exs files

config.exs

    config :ex_ussd :provider, AfricasTalking

Example

iex> ExUssd.goto(
...>  internal_routing: %{text: "", session_id: "session_01", service_code: "*544#"},
...>  menu: ExUssd.Menu.render(
...>    name: "Home",
...>    handler: fn menu, _api_parameters, _should_handle ->
...>      menu |> Map.put(:title, "Home Page: Welcome")
...>    end
...>  ),
...>  api_parameters: %{
...>      "sessionId" => "session_01",
...>      "phoneNumber" => "254722000000",
...>      "networkCode" => "Safaricom",
...>      "serviceCode" => "*544#",
...>      "text" => ""
...>    }
...>  )
{:ok, "CON Home Page: Welcome"}

This a helper function that helps simulate ussd call

Example

iex> ExUssd.simulate(menu: ExUssd.Menu.render(
...>  name: "Home",
...>  handler: fn menu, _api_parameters, _should_handle ->
...>    menu
...>    |> Map.put(:title, "Welcome")
...>  end
...>),
...> text: "")
{:ok, "Welcome"}