iyzico Elixir Client
A minimal iyzico client.
Currently maintained by @heybuybuddy.
Installation
Available in Hex, the package can be installed
by adding iyzico to your list of dependencies in mix.exs:
def deps do
[{:iyzico, "~> 1.0"}]
end
Configuration
You may get your own API key and API secret from (https://sandbox-merchant.iyzipay.com).
Once you're ready to production, you will ultimately need to use production mode.
This is achieved by providing :prod parameter to :world key.
config :iyzico, Iyzico,
locale: "en",
api_key: "sandbox-qO7nc7SfZobKsgQq81r518pEnfg6FJQE",
api_secret: "sandbox-OFVrJ1h8QM8xq8BMTKBiZUa92JcD2B8g",
world: :sandbox,
base_url: "https://sandbox-api.iyzipay.com"
Usage
Making a payment
alias Iyzico.Iyzipay
card =
%Card{
holder_name: "John Doe",
number: "5528790000000008",
exp_month: 12,
exp_year: 2030,
cvc: 123
}
buyer =
%Buyer{
id: "BY789",
name: "John",
surname: "Doe",
phone_number: "+905350000000",
identity_number: "74300864791",
email: "email@email.com",
last_login_date: "2015-10-05 12:43:35",
registration_date: "2013-04-21 15:12:09",
registration_address: "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
city: "Istanbul",
country: "Turkey",
zip_code: "34732",
ip: "85.34.78.112"
}
shipping_address =
%Address{
address: "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
zip_code: "34742",
contact_name: "Jane Doe",
city: "Istanbul",
country: "Turkey"
}
billing_address =
%Address{
address: "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
zip_code: "34742",
contact_name: "Jane Doe",
city: "Istanbul",
country: "Turkey"
}
binocular_item =
%BasketItem{
id: "BI101",
name: "Binocular",
category: "Collectibles",
subcategory: "Accessories",
type: :physical,
price: "0.3"
}
game_item =
%BasketItem{
id: "BI103",
name: "USB",
category: "Electronics",
subcategory: "USB / Cable",
type: :physical,
price: "0.2"
}
payment_request =
%PaymentRequest{
locale: @current_locale,
conversation_id: "123456789",
price: "0.5",
paid_price: "0.7",
currency: :try,
basket_id: "B67832",
payment_channel: :web,
payment_group: :product,
payment_card: card,
installment: 1,
buyer: buyer,
shipping_address: shipping_address,
billing_address: billing_address,
basket_items: [
binocular_item,
game_item
]
}
payment = Iyzipay.process_payment_req!(payment_request)
Registering a card to the platform
alias Iyzico.CardRegistration
card =
%Card{
holder_name: "Buğra Ekuklu",
number: "5528790000000008",
exp_year: 19,
exp_month: 08,
cvc: 543,
registration_alias: "Buğra's credit card"
}
registration = CardRegistration.create_card!(card, "external_id", "conversation_id", "test@mail.com")
Contribution
All contributions are welcomed as long as you follow the conventions of Elixir language.
License
MIT