@@ -32,7 +32,7 @@ export default defineEventHandler(async (event) => {
32
32
transactionDate : z . string ( ) ,
33
33
transferAmount : z . number ( ) ,
34
34
transferType : z . string ( ) ,
35
- } ) . partial ( ) . parse ( payload ) ,
35
+ } ) . parse ( payload ) ,
36
36
)
37
37
38
38
if ( process . env . SEPAY_WEBHOOK_SIGNING_KEY !== getHeader ( event , 'Authorization' ) ?. match ( / A p i k e y ( .* ) / ) ?. [ 1 ] ) {
@@ -48,17 +48,18 @@ export default defineEventHandler(async (event) => {
48
48
// SePay Webhook always success (if not, it will not call this endpoint anyway)
49
49
50
50
const transactionStatus = PaymentStatus . RESOLVED
51
+ const orderCode = body . code . slice ( 2 ) || '' // Remove the first 2 characters (SP)
51
52
52
53
const { updatePaymentStatus, updateProviderTransactionStatus, getProviderTransactionByOrderCode } = usePayment ( )
53
54
54
- const paymentTransactionOfProvider = await getProviderTransactionByOrderCode ( String ( body . code ) )
55
+ const paymentTransactionOfProvider = await getProviderTransactionByOrderCode ( String ( orderCode ) )
55
56
56
57
if ( ! paymentTransactionOfProvider ?. payment . order . package ) {
57
- logger . warn ( `[SePay Webhook] Transaction not found or invalid: code=${ body . code } ` )
58
+ logger . warn ( `[SePay Webhook] Transaction not found or invalid: code=${ orderCode } ` )
58
59
return { success : true }
59
60
}
60
61
61
- logger . log ( `[SePay Webhook] Processing transaction: code=${ body . code } , status=${ transactionStatus } ` )
62
+ logger . log ( `[SePay Webhook] Processing transaction: code=${ orderCode } , status=${ transactionStatus } ` )
62
63
63
64
const priceDiscount = Number ( paymentTransactionOfProvider . payment . order . package . price_discount )
64
65
const price = Number ( paymentTransactionOfProvider . payment . order . package . price )
@@ -84,7 +85,7 @@ export default defineEventHandler(async (event) => {
84
85
logger . log ( `[SePay Webhook] Credits added successfully: userId=${ userId } , amount=${ creditAmount } ` )
85
86
86
87
if ( ! paymentTransactionOfProvider ?. payment . order . package ) {
87
- logger . error ( `[SePay Webhook] No product found for transaction: ${ body . code } ` )
88
+ logger . error ( `[SePay Webhook] No product found for transaction: ${ orderCode } ` )
88
89
throw createError ( {
89
90
statusCode : 400 ,
90
91
message : 'No product found for this transaction!' ,
0 commit comments