lundi 11 octobre 2021

Displaying API Data through a blade view

there's a problem I've facing for the past couple of weeks. Although I've made a little bit of progress, displaying saved data from an API seems to be something that I'll be struggling with since it's the first time I've ever used an API.

I'm using a payment API which is supposed to store the customers payment detail(s) in the mysql database. That includes the transaction id, amount and their phone number as you can see here. The transaction id is saved on the 'mpesa_trans_id'

I want to take the latest transaction Id that's been saved when the customer pays, and display it on the customers view as shown here although it isn't showing here.

Here's the code for the controller that's supposed to be handling the transaction id.

//Confirming the transaction Id that's stored in the database:

    public function confirmPayment(Request $request){
    $request->validate(['transactionId'=>'required']);
    $transId = $request->transactionId;
    $exists = Payment::where('mpesa_trans_id',$transId)->latest()->first();
    //Here you can redirect to the same page, because the payment is not successful or the transaction id provided does not match any payment
    if(!$exists){
        $error= ["success"=>false, "error"=>"Unable to confirm your transaction code. Please contact admin.. :)"];
        session($error);
        return back();
    }
    $message = ["success"=>true, "message"=>"Payment successful!"];
    session($message);
    return view('/confirm', ['transId' => $transId]);
}

//Confirmation blade

        <div class="login-inner-block">
                    @foreach($pays as $pay)
                        <div class="frm-grp">
                            <label>@lang('Transaction Id')</label>
                            <input type="text" name="transactionId" value="" placeholder="@lang('Example: OIB9FQP9H7')">
                            <span class="text-box">Your Transaction Id Is</span>
                            <span></span>
                    @endforeach
                        </div>
                    
                    <div class="btn-area text-center">
                        <button type="submit"  class="submit-btn">@lang('Confirm Payment')</button>
                    </div>
                    <br>

When I was entering the transaction id through the text box, everything was working fine. But now, I want to display the transaction Id automatically without entering it in the text box. But when I try to refresh the website, I get an error 'Undefined variable:$pays'.

How's can I get rid of this error and display the latest transaction Id in the view? If you have knowledge of passing a variable from an API controller, kindly help me



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire