phonepe #26
| @ -82,7 +82,7 @@ export const registerClient = onRequest({ | ||||
|                         phoneNumber: formattedPhoneNumber, | ||||
|                     }; | ||||
| 
 | ||||
|                     await admin.firestore().collection('client_profile').doc(clientUid).set(clientData); | ||||
|                     await admin.firestore().collection('client_profiles').doc(clientUid).set(clientData); | ||||
| 
 | ||||
|                     return res.status(201).json({ | ||||
|                         success: true, | ||||
|  | ||||
| @ -10,6 +10,13 @@ export const phonePeWebhook = onRequest({ | ||||
|   region: '#{SERVICES_RGN}#' | ||||
| }, async (request: Request, response) => { | ||||
|   try { | ||||
| 
 | ||||
|     logger.info('Received webhook request', { | ||||
|       headers: request.headers, | ||||
|       body: request.body, | ||||
|       method: request.method | ||||
|     }); | ||||
|      | ||||
|     const authHeader = request.headers['authorization'] as string; | ||||
|     const username = process.env.PHONEPE_WEBHOOK_USERNAME; | ||||
|     const password = process.env.PHONEPE_WEBHOOK_PASSWORD; | ||||
| @ -20,14 +27,12 @@ export const phonePeWebhook = onRequest({ | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     // Calculate expected authorization value
 | ||||
|     const credentialString = `${username}:${password}`; | ||||
|     const expectedAuth = crypto | ||||
|       .createHash('sha256') | ||||
|       .update(credentialString) | ||||
|       .digest('hex'); | ||||
|      | ||||
|     // PhonePe may send the header with a prefix like "SHA256 " or just the hash
 | ||||
|     const receivedAuth = authHeader.replace(/^SHA256\s+/i, ''); | ||||
|      | ||||
|     if (receivedAuth.toLowerCase() !== expectedAuth.toLowerCase()) { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user