Skip to content

مشکل در تایید تراکنش سپهر پی #331

@srz0201

Description

@srz0201

در وعضی از موارد کاربر تو درگاه مبلغ رو به درستی پرداخت میکنه
تراکنش تایید میشه
ولی رو سایتم وضعیت تراکنش تغییر نمیکنه..
همیشه این اتفاق نمیفته هرچقد تست میکنم همه چی درسته ولی در مواردی این اتفاق میفته..
کد های callBack رو میزارم
لطفا راهنمایی کنید

`
public function callBack(Request $request){

    $transaction_id= (int)$request->Authority;


    try {
        $payment = \App\Models\Payment::where('transaction_id',$transaction_id)->latest()->first();
        $cart = Cart::where('id',$payment->cart_id)->first();


        $receipt = Payment::via($payment->port)->amount($payment->price)->transactionId($transaction_id)->verify();


        if ($receipt && $receipt->getReferenceId()) {

            $ReferenceId=$receipt->getReferenceId();
            $Date=$receipt->getDate();

            $cart->orderLogs()->create([
                'status' => 0,
                'text' => 'تراکنش تایید شد.کد رهگیری: :'.$ReferenceId
            ]);


            $payment->update([
                'ref_id' => $ReferenceId,
                'status' => 'SUCCEED',
                'result_message' => 'SUCCEED',
                'payment_date' => $Date,
            ]);


            $cart->update([
                'tracking_code' => $ReferenceId,
                'pay_status' => 1,
                'paid_price' => $payment->price,
                'transactions_id' => $payment->id

            ]);

            $cart->cartAddress()->create([
                'province_id'=> $cart->address->province_id,
                'city_id'=> $cart->address->city_id,
                'name'=> $cart->address->name,
                'address'=> $cart->address->address,
                'postal_code'=> $cart->address->postal_code,
                'location'=> $cart->address->location,
                'phone'=> $cart->address->phone,
            ]);

        }else{

            $cart->orderLogs()->create([
                'status' => 0,
                'text' => 'مشکل در تایید تراکنش در بانک : شماره تراکنش :'.$transaction_id
            ]);

            return "مشکل در تایید تراکنش در بانک.شماره تراکنش:".$transaction_id;

        }

        $date = Jalalian::forge($receipt->getDate())->format('Y/m/d H:i');

        $cart->orderLogs()->create([
            'status' => 0,
            'text' => 'پرداخت سبد خرید|زمان :'.$date
        ]);

        ultraFastSend([
            'order_id' => "$cart->id",
        ], config('sms.new_order'), $cart->user->mobile);


        foreach (config('website.manager_mobile') as $mobile){
            ultraFastSend([
                'user_name' => $cart->user->name,
                'date' => "$date",
            ], config('sms.manager_order_alert'), $mobile);
        }



        session()->flash('pay-success');
        return redirect(route('orders.show',$cart));



    } catch (InvalidPaymentException $exception) {
        /**
        when payment is not verified, it will throw an exception.
        We can catch the exception to handle invalid payments.
        getMessage method, returns a suitable message that can be used in user interface.
         **/

        $transID =null;
        $message = $exception->getMessage();
        return view('cart.payment_failed',compact('message','transID'));

    }
}

`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions