Spaces:
Running
Running
fix: debug logging for payment response header extraction
Browse files
server.js
CHANGED
|
@@ -38,11 +38,24 @@ function isAllowedUrl(urlStr) {
|
|
| 38 |
// Extract payer from the PAYMENT-RESPONSE header (set by x402 after settlement)
|
| 39 |
function getPayerFromSettlement(res) {
|
| 40 |
try {
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
return decoded?.payer || null;
|
| 45 |
-
} catch {
|
|
|
|
| 46 |
return null;
|
| 47 |
}
|
| 48 |
}
|
|
|
|
| 38 |
// Extract payer from the PAYMENT-RESPONSE header (set by x402 after settlement)
|
| 39 |
function getPayerFromSettlement(res) {
|
| 40 |
try {
|
| 41 |
+
// Try multiple header name cases — Express normalizes to lowercase
|
| 42 |
+
const header =
|
| 43 |
+
res.getHeader("PAYMENT-RESPONSE") ||
|
| 44 |
+
res.getHeader("payment-response") ||
|
| 45 |
+
res.getHeader("Payment-Response");
|
| 46 |
+
if (!header) {
|
| 47 |
+
// Log all response headers for debugging
|
| 48 |
+
const allHeaders = res.getHeaders();
|
| 49 |
+
const paymentHeaders = Object.keys(allHeaders).filter(
|
| 50 |
+
(k) => k.toLowerCase().includes("payment"),
|
| 51 |
+
);
|
| 52 |
+
console.log("Payment-related response headers:", paymentHeaders);
|
| 53 |
+
return null;
|
| 54 |
+
}
|
| 55 |
+
const decoded = JSON.parse(Buffer.from(String(header), "base64").toString());
|
| 56 |
return decoded?.payer || null;
|
| 57 |
+
} catch (err) {
|
| 58 |
+
console.error("Payer extraction from settlement failed:", err.message);
|
| 59 |
return null;
|
| 60 |
}
|
| 61 |
}
|