summaryrefslogtreecommitdiff
path: root/src/pages
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-03-02 17:02:12 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-03-02 17:02:12 +0700
commit405dc33dba63f008f45b76061a8f1be5031a1d5d (patch)
tree7d60a44153dfadd11f0ff0a81144720b961b5823 /src/pages
parentd336735a91133cc3f1cf6f67ba2ac29f0985fd2e (diff)
midtrans integration
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/_document.jsx13
-rw-r--r--src/pages/api/activation-request.js2
-rw-r--r--src/pages/api/shop/midtrans-payment.js51
3 files changed, 65 insertions, 1 deletions
diff --git a/src/pages/_document.jsx b/src/pages/_document.jsx
new file mode 100644
index 00000000..bff2b1b2
--- /dev/null
+++ b/src/pages/_document.jsx
@@ -0,0 +1,13 @@
+import { Html, Head, Main, NextScript } from 'next/document'
+
+export default function Document() {
+ return (
+ <Html>
+ <Head />
+ <body>
+ <Main />
+ <NextScript />
+ </body>
+ </Html>
+ )
+}
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)
+}