diff options
Diffstat (limited to 'src/pages/api')
| -rw-r--r-- | src/pages/api/activation-request.js | 2 | ||||
| -rw-r--r-- | src/pages/api/shop/midtrans-payment.js | 51 |
2 files changed, 52 insertions, 1 deletions
diff --git a/src/pages/api/activation-request.js b/src/pages/api/activation-request.js index 7fae2fd1..61dbb597 100644 --- a/src/pages/api/activation-request.js +++ b/src/pages/api/activation-request.js @@ -13,7 +13,7 @@ export default async function handler(req, res) { html: ` <h1>Permintaan Aktivasi Akun Indoteknik</h1> <br> - <p>Aktivasi akun anda melalui link berikut: <a href="${process.env.SELF_HOST}/activate?token=${result.token}">Aktivasi Akun</a></p> + <p>Aktivasi akun anda melalui link berikut: <a href="${process.env.NEXT_PUBLIC_SELF_HOST}/activate?token=${result.token}">Aktivasi Akun</a></p> ` }) } diff --git a/src/pages/api/shop/midtrans-payment.js b/src/pages/api/shop/midtrans-payment.js new file mode 100644 index 00000000..a9bf16ac --- /dev/null +++ b/src/pages/api/shop/midtrans-payment.js @@ -0,0 +1,51 @@ +import odooApi from '@/core/api/odooApi' +import midtransClient from 'midtrans-client' + +export default async function handler(req, res) { + const { transactionId = null } = req.query + + if (!transactionId) { + res.status(422).json({ error: 'parameter missing' }) + } + + let { auth } = req.cookies + + if (!auth) { + res.status(401).json({ error: 'Unauthorized' }) + } + + auth = JSON.parse(auth) + const transaction = await odooApi( + 'GET', + `/api/v1/partner/${auth.partnerId}/sale_order/${transactionId}`, + {}, + { Token: auth.token } + ) + if (!transaction?.id) { + res.status(400).json({ error: 'No Data' }) + } + + const snap = new midtransClient.Snap({ + isProduction: process.env.MIDTRANS_ENV == 'production', + serverKey: process.env.MIDTRANS_SERVER_KEY + }) + + const parameter = { + transaction_details: { + order_id: transaction.name, + gross_amount: transaction.amountTotal + }, + credit_card: { + secure: true + }, + customer_details: { + first_name: transaction.address.invoice.name, + email: transaction.address.invoice.email, + phone: transaction.address.invoice.phone + } + } + + const midtransTransaction = await snap.createTransaction(parameter) + + res.status(200).json(midtransTransaction) +} |
