@@ -32,7 +32,7 @@ export default defineEventHandler(async (event) => {
3232 transactionDate : z . string ( ) ,
3333 transferAmount : z . number ( ) ,
3434 transferType : z . string ( ) ,
35- } ) . partial ( ) . parse ( payload ) ,
35+ } ) . parse ( payload ) ,
3636 )
3737
3838 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) => {
4848 // SePay Webhook always success (if not, it will not call this endpoint anyway)
4949
5050 const transactionStatus = PaymentStatus . RESOLVED
51+ const orderCode = body . code . slice ( 2 ) || '' // Remove the first 2 characters (SP)
5152
5253 const { updatePaymentStatus, updateProviderTransactionStatus, getProviderTransactionByOrderCode } = usePayment ( )
5354
54- const paymentTransactionOfProvider = await getProviderTransactionByOrderCode ( String ( body . code ) )
55+ const paymentTransactionOfProvider = await getProviderTransactionByOrderCode ( String ( orderCode ) )
5556
5657 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 } ` )
5859 return { success : true }
5960 }
6061
61- logger . log ( `[SePay Webhook] Processing transaction: code=${ body . code } , status=${ transactionStatus } ` )
62+ logger . log ( `[SePay Webhook] Processing transaction: code=${ orderCode } , status=${ transactionStatus } ` )
6263
6364 const priceDiscount = Number ( paymentTransactionOfProvider . payment . order . package . price_discount )
6465 const price = Number ( paymentTransactionOfProvider . payment . order . package . price )
@@ -84,7 +85,7 @@ export default defineEventHandler(async (event) => {
8485 logger . log ( `[SePay Webhook] Credits added successfully: userId=${ userId } , amount=${ creditAmount } ` )
8586
8687 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 } ` )
8889 throw createError ( {
8990 statusCode : 400 ,
9091 message : 'No product found for this transaction!' ,
0 commit comments