Lompat ke konten Lompat ke sidebar Lompat ke footer

Siapkan Integrasi Gateway Pembayaran Paypal di Laravel PHP

Siapkan Integrasi Gateway Pembayaran Paypal di Laravel PHP



Dalam tutorial ini, saya akan memberitahu Anda untuk mengintegrasikan gateway pembayaran Paypal dengan cara standar di Laravel PHP Framework.

Gateway pembayaran Paypal menjadi populer untuk semua proyek dan lebih mudah untuk diintegrasikan di situs web untuk pengembang dan di sini saya mendefinisikan cara mudah untuk mengintegrasikan gateway pembayaran paypal dalam aplikasi.

Ada dua lingkungan, satu adalah kotak pasir yang digunakan untuk tujuan pengujian dan yang kedua adalah live.

Pelanggan dapat dengan mudah melakukan pembayaran di gateway pembayaran Paypal dan mereka juga dapat melakukan pembayaran yang aman dengan menggunakan kartu atau saldo paypal mereka yang berarti gateway pembayaran paypal aman bagi pengguna untuk melakukan pembayaran online.

Saya memiliki dua tabel products dan payments dan relatif model.

Berikut adalah proses untuk membuat tabel dan model di Laravel.

• Tabel Produk

Jalankan PHP artisan untuk membuat file migrasi untuk tabel produk.

php artisan make:migration create_products_table

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateProductsTable extends Migration
{
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->text('details');
            $table->float('price');
            $table->timestamps();
        });
    }
    public function down()
    {
        Schema::drop("products");
    }
}

Tempel kode ini di file migrasi Anda untuk produk dan jalankan php artisan migrateuntuk membuat tabel di database Anda.

• model produk

namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
    public $fillable = ['name','details','price'];
}


• Payment Table

Sama seperti produk, buat tabel pembayaran menggunakan perintah php artisan.

php artisan make:migration create_payments_table

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePaymentsTable extends Migration
{
    public function up()
    {
        Schema::create('payments', function (Blueprint $table) {
            $table->increments('id');
            $table->string('item_number');
            $table->string('transaction_id');
            $table->string('currency_code');
            $table->string('payment_status');
            $table->timestamps();
        });
    }
    public function down()
    {
        Schema::drop("payments");
    }
}

• Payment Model

namespace App;
use Illuminate\Database\Eloquent\Model;
class Payment extends Model
{
    public $fillable = ['item_number','transaction_id','currency_code','payment_status'];
}

• routes.php

Route::get('payment-status',array('as'=>'payment.status','uses'=>'PaymentController@paymentInfo'));
Route::get('payment',array('as'=>'payment','uses'=>'PaymentController@payment'));
Route::get('payment-cancel', function () {
    return 'Payment has been canceled';
});

• Payment Controller

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Product;
use App\Payment;
class PaymentController extends Controller {
    public function payment(Request $request){
           $product=Product::find($request->id);    
      return view('payment',compact('product'));
    }
    public function paymentInfo(Request $request){        
        if($request->tx){
            if($payment=Payment::where('transaction_id',$request->tx)->first()){
                $payment_id=$payment->id;
            }else{
                $payment=new Payment;
                $payment->item_number=$request->item_number;
                $payment->transaction_id=$request->tx;
                $payment->currency_code=$request->cc;
                $payment->payment_status=$request->st;
                $payment->save();
                $payment_id=$payment->id;
            }
        return 'Pyament has been done and your payment id is : '.$payment_id;
        
        }else{
            return 'Payment has failed';
        }
    }
}

Metode pembayaran digunakan untuk merender bentuk gateway pembayaran tempat data produk yang dipilih diteruskan untuk dibeli.

Setelah pengalihan berhasil dari gateway pembayaran paypal kami mengambil data respons dalam metode paymentInfo dan sesuai dengan itu kami memperbarui tabel pembayaran dengan id transaksi.

• Formulir pembayaran

Dalam formulir ini kami mengikat detail produk yang dipilih dengan formulir paypal.



Teks respons gateway pembayaran paypal yang akan Anda dapatkan setelah pembayaran berhasil:

{ "tx" : "4V936557BM418705U" , "st" : "Selesai" , "amt" : "10.00" , "cc" : "USD" , "cm" : "" , "item_number" : "292" }


Posting Komentar untuk "Siapkan Integrasi Gateway Pembayaran Paypal di Laravel PHP"