This post is also available in:
English
Hallo apa kabar teman semuanya, semoga sehat dan sukses selalu. Kali ini kita masih membahas cara integrasi Paypal, akan tetapi kita akan membuatnya menggunakan Node.jS.
Paypal adalah metode pembayaran internasional yang bekerja di sebagian besar negara yang mendukung transfer uang online. Paypal menyediakan cara transfer uang yang lebih cepat dan aman. Karena popularitasnya, sebagian besar bisnis e-commerce menggunakan Paypal untuk mengumpulkan uang dari pelanggan.
Pada artikel ini, kami akan mengintegrasikan gateway pembayaran Paypal ke dalam node.JS. Ini adalah situs web e-commerce yang membantu menggunakan kerangka kerja Laravel sebagai teknologi backend. Kami akan melalui langkah demi langkah dari awal.
Ikutilah langkah-langkah di bawah ini:
- Buat project baru
- Instal Paket untuk Gateway Pembayaran Paypal Menggunakan npm
- Buat akun dan Paypal credentioals
- Buat File JS
- Checkout view
- Payment handler
- Jalankan aplikasi
Kita langsung saja bahas tutorialnya di bawah ini. Baca juga tutorial yang lainnya di sini:
Integrasi Paypal Payment Gateway Dengan Laravel
Membuat Rating dan Ulasan Dengan Laravel
1. Buat project baru
Buat project baru dengan perintah seperti di bawah ini.
$ mkdir paynode
$ cd paynode
$ npm install
$ npm init
Perintah npm init menambahkan file package.json ke direktori paywave kita, menjadikannya aplikasi Node.js.
2. Instal Paket untuk Gateway Pembayaran Paypal Menggunakan npm
Jalankan perintah di bawah ini untuk menginstal express, dan paypal-rest-sdk ke dalam proyek kita.
$ npm i express
$ npm i paypal-rest-sdk
3. Buat akun dan Paypal credentioals
Setelah menginstal paket paypal, kami memerlukan client_id dan secret_key untuk integrasi paypal, jadi kami perlu masuk dalam mode pengembang paypal dan membuat akun kotak pasir baru untuk hal yang sama. Setelah login di paypal Anda perlu mendapatkan client_id dan secret_key seperti gambar di bawah. sebelum mendapatkan client_id dan secret_key kita perlu membuat application. Jadi, periksa tangkapan layar di bawah ini dan buat aplikasi. Login ke Developer Dashboard.
Klik Create App.

Isikan nama aplikasi yang di buat.

Maka kalian akan mendapatkan sclient key dan scret key yang akan di gunakan pada aplikasi.

4. Buat File JS
- Di direktori paynode, buat file baru bernama index.js.
- Tambahkan kode di bawah ini ke file index.js yang dibuat di atas.
const express = require('express');
const paypal = require('paypal-rest-sdk');
paypal.configure({
'mode': 'sandbox', //sandbox or live
'client_id': '####yourclientid######',
'client_secret': '####yourclientsecret#####'
});
const app = express();
app.get('/', (req, res) => res.sendFile(__dirname + "/index.html"));
app.listen(PORT, () => console.log(`Server Started on ${PORT}`));
- Sesuaikan cliend_id dan client_screet dengan paypal kalian.
5. Checkout view
- Di direktori paynode, buat file bernama index.html.
- Tambahkan cuplikan kode di bawah ini ke index.html.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>PayPal Node App</title>
</head>
<body>
<h1> Shoes </h1>
<h2>Buy For $25</h2>
<form action="/pay" method="post">
<input type="submit" value="Buy">
</form>
</body>
</html>
- Di kode html tersebut kita hanya menambahkan route yang akan kita gunakan untuk chackout.
6. Payment handler
Tambahkan kode di bawah ini pada file index.js.
app.post('/pay', (req, res) => {
const create_payment_json = {
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"redirect_urls": {
"return_url": "http://localhost:3000/success",
"cancel_url": "http://localhost:3000/cancel"
},
"transactions": [{
"item_list": {
"items": [{
"name": "Red Sox Hat",
"sku": "001",
"price": "25.00",
"currency": "USD",
"quantity": 1
}]
},
"amount": {
"currency": "USD",
"total": "25.00"
},
"description": "Hat for the best team ever"
}]
};
app.get('/success', (req, res) => {
const payerId = req.query.PayerID;
const paymentId = req.query.paymentId;
const execute_payment_json = {
"payer_id": payerId,
"transactions": [{
"amount": {
"currency": "USD",
"total": "25.00"
}
}]
};
paypal.payment.execute(paymentId, execute_payment_json, function (error, payment) {
if (error) {
console.log(error.response);
throw error;
} else {
console.log(JSON.stringify(payment));
res.send('Success');
}
});
});
paypal.payment.create(create_payment_json, function (error, payment) {
if (error) {
throw error;
} else {
for(let i = 0;i < payment.links.length;i++){
if(payment.links[i].rel === 'approval_url'){
res.redirect(payment.links[i].href);
}
}
}
});
});
app.get('/cancel', (req, res) => res.send('Cancelled'));
7. Jalankan aplikasi
Tuliskan kode node index.js pada direktori kalian.

- Jalankan aplikasi kalian di browser, maka hasilnya seperti ini.

- Proses Checkout

Dan kalian telah dapat membuat aplikasi sederhana, intergasi Paypal di Node.JS.
Demikian tutorial kali ini yang bisa saya sampaikan, semoga bermanfaat.
Terimakasih.