پَرباد - آموزش پیادهسازی پرداخت آنلاین در دات نت - آموزش پایه
نویسنده: سینا سلطانی
تاریخ: ۱۳۹۸/۰۱/۰۷ ۱۷:۳۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
var result = await _onlinePayment.RequestAsync(Gateways.[Your Selected Gateway], [Tracking Number], [Amount], [Verify URL]);
using Parbad;
protected void BtnPay_Click(object sender, EventArgs e)
{
// استفاده به صورت استاتیک و بدون تزریق وابستگی
var result = StaticOnlinePayment.Instance.Request(Gateways.Mellat, 123, 25000, "http://www.mywebsite.com/foo/bar/");
if (result.IsSucceed)
{
// کاربر را به سمت درگاه بانکی هدایت میکند
// همچنین بهتر است کد رهگیری که در شئ نتیجه است را، برای فاکتور مورد نظر در پایگاه داده خودتان ذخیره کنید
result.GatewayTransporter.Transport();
}
else
{
// درخواست پرداخت موفقیت آمیز نبود
}
} using Parbad.Mvc5;
private readonly IOnlinePayment _onlinePayment;
// تزریق وابستگی به کنترلر
public PaymentController(IOnlinePayment onlinePayment)
{
_onlinePayment = onlinePayment;
}
public async Task<ActionResult> Pay()
{
var result = await _onlinePayment.RequestAsync(Gateways.Mellat, 123, 25000, "http://www.mywebsite.com/foo/bar/");
if (result.IsSucceed)
{
// کاربر را به سمت درگاه بانکی هدایت میکند
// همچنین بهتر است کد رهگیری که در شئ نتیجه است را، برای فاکتور مورد نظر در پایگاه داده خودتان ذخیره کنید
return result.GatewayTransporter.TransportToGateway();
}
else
{
// درخواست پرداخت موفقیت آمیز نبود
}
} using Parbad.AspNetCore;
private readonly IOnlinePayment _onlinePayment;
public PaymentController(IOnlinePayment onlinePayment)
{
_onlinePayment = onlinePayment;
}
public async Task<IActionResult> Pay()
{
var result = await _onlinePayment.RequestAsync(Gateways.Mellat, 123, 25000, "http://www.mywebsite.com/foo/bar/");
if (result.IsSucceed)
{
// کاربر را به درگاه بانکی هدایت میکند
// همچنین بهتر است کد رهگیری که در شئ نتیجه است را، برای فاکتور مورد نظر در پایگاه داده خودتان ذخیره کنید
return result.GatewayTransporter.TransportToGateway();
}
else
{
// do something else
}
} public async Task<IActionResult> Verify()
{
var result = await _onlinePayment.VerifyAsync(invoice =>
{
// در این مرحله هنوز درخواست واریز وجه از وب سایت شما به بانک ارسال نشده است
// بنابراین شما میتوانید اطلاعات صورتحساب را با پایگاه داده خود چک کنید
// و در صورت لزوم تراکنش را لغو کنید
if (!Is_There_Still_Enough_SmartPhone_In_Shop(invoice.TrackingNumber))
{
// لغو عملیات پرداخت
invoice.CancelPayment("We have no more smart phones to sell.");
}
});
if(result.IsSucceed)
{
// پرداخت موفقیت آمیز بوده است. کد تراکنش بانکی را در پایگاه داده خود ذخیره کنید
var transactionCode = result.TransactionCode;
}
else
{
// پرداخت به دلایلی موفقیت آمیز نبوده.
// در صورت تمایل میتوانید پراپرتی پیام در شئ نتیجه را مشاهده کنید و یا به کاربر نمایش دهید
}
} // کد رهگیری صورت حساب مورد نظر var trackingNumber = 123; var result = await _onlinePayment.RefundCompletelyAsync(trackingNumber);
var result = _onlinePayment.Request(invoice =>
{
invoice
// سایر مشخصات صورت حساب
.SetAmount(50000)
.AddMellatCumulativeAccount(subServiceId: 330, amount: 20000, payerId: 22)
.AddMellatCumulativeAccount(subServiceId: 333, amount: 30000);
});