summaryrefslogtreecommitdiff
path: root/src/pages/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/api')
-rw-r--r--src/pages/api/activation-request.js2
-rw-r--r--src/pages/api/shop/midtrans-payment.js51
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)
+}