summaryrefslogtreecommitdiff
path: root/src/lib/transaction/components/Transaction.jsx
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-08-29 10:42:05 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-08-29 10:42:05 +0700
commit308563b3f45255450206decc03329dcc64c4bc50 (patch)
treeb116dbd5eea73ecb14047388539326e77dab5397 /src/lib/transaction/components/Transaction.jsx
parent321bd5214ba00867d38866e401146bcc79157cec (diff)
<MIqdad> Fix payment
Diffstat (limited to 'src/lib/transaction/components/Transaction.jsx')
-rw-r--r--src/lib/transaction/components/Transaction.jsx19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/lib/transaction/components/Transaction.jsx b/src/lib/transaction/components/Transaction.jsx
index cc5f862c..0a399f12 100644
--- a/src/lib/transaction/components/Transaction.jsx
+++ b/src/lib/transaction/components/Transaction.jsx
@@ -213,17 +213,32 @@ const Transaction = ({ id }) => {
const handlePayNow = async () => {
try {
setContLoading(true);
- // 1) gunakan URL yang sudah dikirim backend (jika ada)
+
+ // (0) minta backend cek status & generate link baru jika expired/cancel
+ let ensuredUrl = '';
+ try {
+ const { data } = await axios.post(
+ `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/so-payment-link?soId=${transaction.data.id}`
+ );
+ ensuredUrl = data?.redirectUrl || '';
+ } catch (_) {
+ // biarkan silent; lanjut ke existing/fallback
+ }
+
+ // (1) pakai URL yang paling terjamin dulu
const existingUrl =
+ ensuredUrl ||
transaction?.data?.paymentSummary?.redirectUrl ||
transaction?.data?.paymentLinkMidtrans ||
'';
+
if (existingUrl) {
window.open(existingUrl, '_blank', 'noopener,noreferrer');
toast.success('Membuka halaman pembayaran…');
return;
}
- // 2) fallback: panggil Next API untuk generate
+
+ // (2) fallback terakhir: pakai Next API (mis. bikin Snap baru)
const res = await axios.post(
`${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/midtrans-payment?transactionId=${transaction.data.id}`
);