دسته بندی : نمونه کد ها | آموزش ساده اتصال به زرین پال در الیکسیر و phoenix به وسیله رست فول api

آموزش ساده اتصال به زرین پال در الیکسیر و phoenix به وسیله رست فول api

آخرین بروزرسانی آذر 19, 1398.

قبلا روش اتصال به زرین پال را در لینک زیر به وسیله سواپ اموزش دادیدم


 آموزش اتصال phoenix به درگاه پرداخت زرین پال Phoenix


خیلی از مباحث در لینک بالا مطرح شده است فقط در این آموزش معرفی چند لینک و یکی دوتا فانکشن ساده و راه ارتباط به وسیله json را انجام خواهیم داد.

توجه داشته باشید شما بر اساس نیازمندی های خودتان می توانید خطا های بیشتری را پیاده سازی کنید فقط کافیست داکیومنت وب سایت مذکور و همینطور خروجی دریافتی از این وب سایت را دریافت کردن و تبدیل به یک پترن سفارشی دلخواه خود نمایید

مرحله اول


در این مرحله من روی پروژه خودم پلاگین httpoison را نصب کردم که می توانید در وب سایت hex.pm ان را روی پروژه خودتان اضافه کنید


به صورت مثال



defp deps do
[
{:phoenix, "~> 1.4.0"},
.....
....

{:httpoison, "~> 1.5"},

و همینطور آن را در بخش زیر نیز معرفی کردم



def application do
[
mod: {BankError.Application, []},
extra_applications: [:logger, :runtime_tools, :httpoison]
]
end

مرحله دوم در این مرحله یک فایل در پروژه خودمان می سازیم کد های زیر در آن قرار می گیرد لازم به ذکر هست این کد ها تکرار در آن ها زیاد هست و دلیل آن توانایی درک بهتر در این اموزش می باشد شما می توانید کد های کمتر و تمیز تر و داینامیک تری را در پروژه خود ایجاد کنید


مرحله سوم


شما در این مرحله سه تابع دارید که هر کدام به ترتیب باید کار هایی را برای شما انجام بدهند ۱. در این تابع یعنی get_token شما یک بار به زرین پال درخواست می دهید و مواردی مثل



MerchantID کد درگاه شما در اینجا تست می باشد
Amount قیمت محصول شما برای بررسی و ولید سازی مهم است
CallbackURL لینک بعد از پرداخت یا عدم پرداخت باید برگشت کند به سایت شما
Description توضیحات پرداخت


به همین سادگی شما در این مرحله که کد های آن بالا قرار دارد و به وسیله HTTPoison یک درخواست post می زنید و توکن برای شروع انتقال کاربر به درگاه بانکی را دریافت می کنید


مرحله چهارم


شما در این بخش در کنترل پروژه فونیکس خودتان می آیید و کد دریافتی از زرین پال را با همراه کاربر ریدارکت می کنید به درگاه زرین پال به صورت زیر



conn
|> redirect(external: "https://sandbox.zarinpal.com/pg/StartPay/#{authority}")

آخرین مرحله حال شما باید اعتبار سنجی فرمایید که آیا کد تراکنش کاربر درست می باشد و توکن آن از قبل ولید بوده یا خیر که تابع زیر می باشد



def validate(zarinpal_token) do
sms_body = Jason.encode!(
%{
"MerchantID" => "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Amount" => "1000",
"Authority" => "#{zarinpal_token}"
}
)
send_info = HTTPoison.post "https://sandbox.zarinpal.com/pg/rest/WebGate/PaymentVerification.json",
sms_body,
[

{"Content-Type", "application/json"},
]

zarinpal_status(send_info)
end


در این بخش شما توکن و همینطور توکن بعد از خرید را ارسال کرده و در صورت اوکی بودن درخواست ثبت در دیتابیس خود می نمایید نمونه ورودی تابع اکشن در کنترل در موقع برگشت از زرین پال



def back_pay(conn, %{"Authority" => authority, "Status" => "OK", "provider" => "zarinpal"}) do


موفق باشید

نویسنده ترانگل
لینک دانلود دانلود فایل PDF آموزش
ارسال نظر