- Notifications
You must be signed in to change notification settings - Fork0
Siftscience API Library for Elixir
License
NotificationsYou must be signed in to change notification settings
C404/sift_ex
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This library (based on the officialSiftScience libraries) allows you to interact with the SiftScience API via various functions in Elixir.
First, add sift_ex to yourmix.exs
dependencies:
defdepsdo[{:sift_ex,"~> 0.1"}]end
and run$ mix deps.get
.
Set your Sift API key
Application.put_env(:sift_ex, :api_key, YOUR_API_KEY)
Set your Account ID (optional)
Application.put_env(:sift_ex, :account_id, YOUR_ACCOUNT_ID)
iex> SiftEx.start# send a transaction event -- note this is blockingiex> event = "$transaction"iex> user_id = "23069" # User ID's may only contain a-z, A-Z, 0-9, =, ., -, _, +, @, :, &, ^, %, !, $iex> properties = %{ "$user_id" => user_id, "$user_email" => "buyer@gmail.com", "$seller_user_id" => "2371", "seller_user_email" => "seller@gmail.com", "$transaction_id" => "573050", "$payment_method" => %{ "$payment_type" => "$credit_card", "$payment_gateway" => "$braintree", "$card_bin" => "542486", "$card_last4" => "4444" }, "$currency_code" => "USD", "$amount" => 15230000,}iex> response = SiftEx.track(event, properties)iex> response["status"] # returns Sift status, default is 0iex> response["error_message"] # returns Sift error message, default is "OK"iex> IO.inspect response # for more details of the response format# Request a score for the user with user_id 23069response = SiftEx.score(user_id)# Label the user with user_id 23069 as Bad with all optional fieldsiex> response = SiftEx.label(user_id, %{ "$is_bad" => true, "$abuse_type" => "payment_abuse", "$description" => "Chargeback issued", "$source" => "Manual Review", "$analyst" => "analyst.name@your_domain.com"})# Get the status of a workflow runiex> response = SiftEx.get_workflow_status('my_run_id')# Get the latest decisions for a useriex> response = SiftEx.get_user_decisions('example_user_id')# Get the latest decisions for an orderiex> response = SiftEx.get_order_decisions('example_order_id')
Check out the official documentationhere for more informations
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Various tests included, just run:
mix deps.getmix test
Copyright (c) 2015 Thibault Hagler. See the LICENSE file for license rights and limitations (MIT).