سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۰ مجید صادقی زاده
درخواست سورس کد پروژه ی payment
جامعه لاراول ایجاد شده در ۲۱ فروردین ۱۳۹۹

با عرض سلام و خسته نباشید 

لطفا سورس کد این پروژه رو بصورت کامل بزارید ، من کدهارو طبق ویدئو نوشتم ، درخواست میزنم سفارش و محصولات موجود در سفارش به همراه رکورد Payment ذخیره میشه اما فیلدهای refnum , gateway , status که باید آپدیت بشن ، این اتفاق نمیفته. ایمیل به همراه محصولات سفارش داده شده هم حتی ارسال میشه به کاربر

سورس کد هایی که در فیلم نوشته میشه در این بخش قرار داده نشده و ناقص هست ، لطفا بررسی بفرمایید ، با تشکر 

 

public function verify(Request $request)
    {
        $soapClient = new \SoapClient('https://acquirer.samanepay.com/payments/referencepayment.asmx?WSDL');
        $response = $soapClient->VerifyTransaction($request->input('RefNum'), $this->merchantID);
        $order = $this->getOrder($request->input('ResNum'));
        $response = $order->payment->amount;
        $request->merge(['RefNum' => '45852525']);
        return $response == $order->payment->amount
            ? $this->transactionSuccess($order, $request->input('RefNum'))
            : $this->transactionFailed();
    }

 

سلام دوست عزیز .. 

کدوم قسمت قرار داده نشده؟‌

من سورس کد رو بررسی کردم .. تمامی قسمت‌ها به صورت کامل روی سایت قرار گرفته.

میتونید از لینک زیر دانلود کنید.

https://7learn.ac/step/send-order-email

مهرداد سامی ۲۱ فروردین ۱۳۹۹، ۱۱:۳۷

استاد این پروژه هم ناقصه 

برای مثال در فایل اینترفیس مربوط به گیت وی باید متد pay دوتا ورودی داشته باشه که این فایلی که پیوست کردید هم یدونه داره ، الان با توجه به مواردی که من گفتم ، مشکل از چی میتونه باشه ؟

مجید صادقی زاده ۲۱ فروردین ۱۳۹۹، ۱۲:۰۲

سورس کد ناقص نیست دوست عزیز .. 

این پروژه در دوره‌های بعدی که مربوط به کدتخفیف هستش تکمیل‌تر میشه .. و موارد بیشتری بهش اضافه میشه .. 

سورس کدی که برای این پروژه قرار داده شده همون سورسی هستش که در سیستم پرداخت آموزش داده شده.

اگر سورس کد کاملتر رو نیاز دارید میتونید از داخل دوره بعدی دانلود کنید.

https://7learn.ac/step/apply-on-category

مهرداد سامی ۲۱ فروردین ۱۳۹۹، ۱۲:۱۳

استاد پروژه ی بعدی که مربوط به تخفیف‌ها بود رو هم بصورت کامل روی پروژه اعمال کردم ، به درستی تخفیف به دسته بندی‌ها و محصول که بصورت دستی کاربر وارد میکنه کار میکنه ، اما اون مشکل من هنوز سر جاش هست ، یعنی بعد از ثبت payment ، ثبت محصول و جزئیاتش و ارسال ایمیل ، فیلدهای  refnum , gateway , status داخل دیتابس پر نمیشن !!

 

مجید صادقی زاده ۲۱ فروردین ۱۳۹۹، ۲۰:۵۰

اگر دقیقا مثل ویدیو پیش برید قطعا خروجی که داخل ویدیو گرفته شده رو خواهید گرفت.

سورس کد هر پروژه هم دقیقا همون موردی هستش که داخل ویدیو تدریس میشه.

دلیل اینکه بنده سورس کد پروژه بعد رو خدمتتون دادم این بود که سوال شما در مورد سورس کد پروژه بعدی بود، در غیر اینصورت شما اصلا نیازی به سورس پروژه بعدی برای این دوره ندارید.

 

مهرداد سامی ۲۱ فروردین ۱۳۹۹، ۲۰:۵۵

متغیر $fillable رو به درستی ایجاد کردید؟

مهرداد سامی ۲۱ فروردین ۱۳۹۹، ۲۰:۵۷

این ۳ موردی که شما میفرمایید، مواردی هستن که داخل متد Confirm در مدل Payment پر میشن .. 

حتما این متد رو چک کنید و یکبار متغیرهایی که بهش ارسال میشن رو بررسی کنید.

مهرداد سامی ۲۱ فروردین ۱۳۹۹، ۲۱:۰۰

سلام 

استاد این کدهای مدل payment هست ، فقط من فیلد method رو به pay_method تغییر دادم که هم تو دیتابیس اینکار انجام شده ، هم جاهای دیگه که ازش استفاده شده

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Payment extends Model
{
    protected $fillable = [
        'order_id', 'amount', 'status', 'pay_method', 'gateway', 'ref_num'
    ];
    protected $attributes = [
        'status' => 0
    ];
    public function isOnline()
    {
        return $this->pay_method === 'online';
    }
    public function confirm(string $refNum , string $gateway = null)
    {
        $this->ref_num = $refNum;
        $this->gateway = $gateway;
        $this->status = 1;
        $this->save();
    }
}

 

مجید صادقی زاده ۲۲ فروردین ۱۳۹۹، ۰۸:۲۵

مشکلی که هست اینه که در ویدئوها زمانیکه به درگاه بانک سامان متصل میشید اونجا توی اون صفحه میمونه و شما باید کلید برگشت رو بزنید که به سمت متد callback که مشخص کردید برگرده ، اما برای من بنظر میومد اصلا به اون درگاه نمیره ، انگار میانبر میزنه!  بعد من تغییر زیر رو در متد زیر (متد pay از کلاس saman) دادم: 
 

 public function pay(Order $order , int $amount)
    {
        $this->redirectToBank($order,$amount);
        dd('Pay method in Saman Class');
    }

 

dd رو که بعد از دستور ریدایرکت به صفحه ی بانک اصافه کردم ، دیدم به صفحه ی بانک منتقل میشه ، اما اونجا توقف نمیکنه که کلید برگشت رو بزنم و ادامه ی کدها اجرا بشه ، اگه دستور dd که برای توقف تو این بخش نوشتم رو بردارم ، همه موارد رو ثبت میکنه به جز اون سه تا فیلدی که قبلا گفتم ، ایمیل هم میفرسته به سمت کاربر که درخواستت این موارد بوده ! من مغایرتی توی کدهایی که نوشتم با کدهایی که توی آموزش هست و حتی فایل هایی که پیوست شده نمی‌بینم ، ولی نمیدونم چرا درست کار نمیکنه 

مجید صادقی زاده ۲۲ فروردین ۱۳۹۹، ۰۸:۴۴

زمانی که از بانک اطلاعات رو دریافت میکنید آیا ref_num وجود داره؟ 

مهرداد سامی ۲۴ فروردین ۱۳۹۹، ۰۵:۱۰