defmodule Mix.Tasks.Sample.Payment.Create do
@moduledoc """
Creates a payment using the credentials at `Mix.TaskHelper.set_sample_config/0`
"""
def run(_) do
request = %Craftgate.Request.CreatePaymentRequest{
price: Decimal.new("100.0"),
paid_price: Decimal.new("100.0"),
wallet_price: Decimal.new("0.0"),
installment: 1,
conversation_id: "456d1297-908e-4bd6-a13b-4be31a6e47d5",
currency: Craftgate.Model.Currency.try(),
payment_group: Craftgate.Model.PaymentGroup.listing_or_subscription(),
card: %Craftgate.Request.Dto.Card{
card_holder_name: "Haluk Demir",
card_number: "5258640000000001",
expire_year: "2044",
expire_month: "07",
cvc: "000"
},
items: [
%Craftgate.Request.Dto.PaymentItem{
name: "Item 1",
price: Decimal.new("30.0"),
external_id: "123d1297-839e-4bd6-a13b-4be31a6e12a8"
},
%Craftgate.Request.Dto.PaymentItem{
name: "Item 2",
price: Decimal.new("50.0"),
external_id: "789d1297-839e-4bd6-a13b-4be31a6e13f7"
},
%Craftgate.Request.Dto.PaymentItem{
name: "Item 3",
price: Decimal.new("20.0"),
external_id: "3a1d1297-839e-4bd6-a13b-4be31a6e18e6"
}
]
}
Mix.TaskHelper.set_sample_config()
{:ok, result} = Craftgate.Adapter.PaymentAdapter.create_payment(request)
IO.inspect(result)
end
end