View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0011356 | Taler | wallet (all platforms) | public | 2026-04-22 23:01 | 2026-04-27 22:32 |
| Reporter | Christian Grothoff | Assigned To | sebasjm | ||
| Priority | urgent | Severity | feature | Reproducibility | N/A |
| Status | assigned | Resolution | open | ||
| Platform | i7 | OS | Debian GNU/Linux | OS Version | squeeze |
| Product Version | git (master) | ||||
| Target Version | 1.6 | ||||
| Summary | 0011356: need paivana template support in wallet-core | ||||
| Description | See DD 76. Example URL: taler+http://pay-template/localhost:9966/paivana?session_id=1776890536-kWT1KPhNWo-rmf9FeiONO144n9AICg3ue1ivCURW58M&fulfillment_url=http%3A%2F%2Flocalhost%3A8888 | ||||
| Steps To Reproduce | Compile paivana.git, start a merchant-backend against the src/backend/test.conf, run src/backend/test.sh, then start pavivana-httpd. Visit localhost:8888/ and you should see the paywall page with the QR code. | ||||
| Tags | No tags attached. | ||||
| child of | 0010667 | confirmed | Christian Grothoff | need paivana reverse proxy [4d] |
| child of | 0010758 | confirmed | Christian Grothoff | turnstile should allow re-creating the order |
|
|
Ok, I got further with the webextension, different error: { "context": [], "cause": { "details": { "code": 7002, "when": { "t_ms": 1776892399041 }, "hint": "Response invalid", "requestUrl": "http://localhost:9966/templates/paivana", "requestMethod": "GET", "httpStatusCode": 200, "response": "{\n \"template_contract\": {\n \"choices\": [\n {\n \"amount\": \"KUDOS:1\"\n }\n ],\n \"summary\": \"The summary\",\n \"template_type\": \"paivana\",\n \"website_regex\": \".*\"\n }\n}", "validationError": "expected number at (TalerMerchantApi.WalletTemplateDetails).template_contract.minimum_age but got undefined" } } } Will check if 'minimum_age' is a mandatory field... |
|
|
https://docs.taler.net/core/merchant/get-templates-TEMPLATE_ID.html#get-[-instances-$INSTANCE]-templates-$TEMPLATE_ID clearly states that minimum_age is an optional field. |
|
|
Sebastian: if you can help fix this quickly, that'd be welcome ;-). |
|
|
i will give it a try, i don't have a paivana setup but looks like a problem in taler-util |
|
|
I see that the template interface changed a lot, it won't take me much to sync them up. That may fix your problem |
|
|
69b9d14ed..5c3313e86 spec updated. all spa still doesn't support new template types that validation check is fixed |
|
|
i have a setup now, and I can work on this next issue |
|
|
since template_type is not yet supported is falling into the default |
|
|
TBH You don't need a template_type in the merchant side if you already have the ID |
|
|
this is what paivana generates taler://pay-template/merchant.taler/paivana?session_id=1777063148-8rXGN2Yep-5Bp24VsSD2R4hES9eYZI_LwmSqsvRcluo&fulfillment_url=https%3A%2F%2Fpaivana.taler%2F but then it fails because of paivana id curl 'https://merchant.taler/templates/paivana' \ --data-raw '{"template_type":"paivana","paivana_id":"1777063148-8rXGN2Yep-5Bp24VsSD2R4hES9eYZI_LwmSqsvRcluo","website":"https://paivana.taler/"}' HTTP/1.1 400 Bad Request { "code": 26, "hint": "A parameter in the request was malformed. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.", "detail": "paivana_id" } |
|
|
DEBUG Looking for by-id key RYPM9JXD of 'admin' in hashmap INFO PAIVANA session `1777063148-8rXGN2Yep-5Bp24VsSD2R4hES9eYZI_LwmSqsvRcluo' INFO PAIVANA after dash `8rXGN2Yep-5Bp24VsSD2R4hES9eYZI_LwmSqsvRcluo' INFO PAIVANA website `https://paivana.taler/' WARNING External protocol violation detected at ../src/backend/taler-merchant-httpd_post-templates-TEMPLATE_ID.c:537. INFO Generating HTTP response with status 400 and code 26 (paivana_id) INFO Request for `/templates/paivana' completed with HTTP status 400 (0) |
|
|
ah, my bad. I had changed it in paivana.git from SHA512 to SHA256 (to make the QR code more reasonable), but had failed to update it in the merchant backend. So this one should be fixed in a75ece57..6d58a48e. Can you please continue testing with this change? |
|
|
ACK, tested and something still wrong. I'm going to create a integration test |
|
|
pull bec18897c for a int test taler-harness run-integrationtests paivana fails at the same spot cat /tmp/taler-integrationtests-latest-sebasjm/paivana/merchant-httpd-testmerchant-1-stderr.log 2026-04-27T10:50:28.428514-0300 taler-merchant-httpd-110194(SXSBZBH83RFJXSR1PTJYQJ99YC) INFO Handling request (GET) for URL '/templates/paivana' 2026-04-27T10:50:28.428529-0300 taler-merchant-httpd-110194(SXSBZBH83RFJXSR1PTJYQJ99YC) DEBUG Looking for by-id key RYPM9JXD of 'admin' in hashmap 2026-04-27T10:50:28.428558-0300 taler-merchant-httpd-110194(SXSBZBH83RFJXSR1PTJYQJ99YC) DEBUG Running prepared statement `lookup_template' on 0x5cbd1444e5e0 2026-04-27T10:50:28.428566-0300 pq-110194(SXSBZBH83RFJXSR1PTJYQJ99YC) DEBUG Executing prepared SQL statement `lookup_template' 2026-04-27T10:50:28.429154-0300 pq-110194(SXSBZBH83RFJXSR1PTJYQJ99YC) DEBUG Execution of prepared SQL statement `lookup_template' finished (PGRES_TUPLES_OK) 2026-04-27T10:50:28.429413-0300 taler-merchant-httpd-110194(SXSBZBH83RFJXSR1PTJYQJ99YC) INFO Request for `/templates/paivana' completed with HTTP status 200 (0) 2026-04-27T10:50:28.429495-0300 util-scheduler-110194(SXSBZBH83RFJXSR1PTJYQJ99YC) DEBUG Adding task 0x5cbd14454c50 2026-04-27T10:50:28.431890-0300 taler-merchant-httpd-110194(5DS9CP4Z1WGV4Q01HDX9YJ2Q5R) INFO Handling request (POST) for URL '/templates/paivana' 2026-04-27T10:50:28.431921-0300 taler-merchant-httpd-110194(5DS9CP4Z1WGV4Q01HDX9YJ2Q5R) DEBUG Looking for by-id key RYPM9JXD of 'admin' in hashmap 2026-04-27T10:50:28.432004-0300 taler-merchant-httpd-110194(5DS9CP4Z1WGV4Q01HDX9YJ2Q5R) WARNING External protocol violation detected at ../src/backend/taler-merchant-httpd_post-templates-TEMPLATE_ID.c:527. 2026-04-27T10:50:28.432023-0300 taler-merchant-httpd-110194(5DS9CP4Z1WGV4Q01HDX9YJ2Q5R) INFO Generating HTTP response with status 400 and code 26 (paivana_id) 2026-04-27T10:50:28.432073-0300 taler-merchant-httpd-110194(5DS9CP4Z1WGV4Q01HDX9YJ2Q5R) INFO Request for `/templates/paivana' completed with HTTP status 400 (0) 2026-04-27T10:50:28.432096-0300 util-scheduler-110194(5DS9CP4Z1WGV4Q01HDX9YJ2Q5R) DEBUG Adding task 0x5cbd14474260 |
|
|
2b91170b3..059754090 fix log statement in wallet-core 2026-04-27T14:07:50.069Z http-impl.node.ts TRACE request 16 POST http://localhost:8083/templates/paivana: { "template_type": "paivana", "paivana_id": "1777298870-XePexh4vjS6sLQWZAPV4MAoyZ1wNeFxFCWh8rx-bVlk", "website": "http%3A%2F%2Flocalhost%3A8088%2Findex.html" } 2026-04-27T14:07:50.070Z http-impl.node.ts TRACE request 16 timeout 60000 ms 2026-04-27T14:07:50.070Z http-impl.node.ts TRACE request 16 status code 400 2026-04-27T14:07:50.071Z http-impl.node.ts TRACE request 16 JSON: { "code": 26, "hint": "A parameter in the request was malformed. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.", "detail": "paivana_id" } |
|
|
I forgot to push a patch in paivana that adds the header To git.taler.net:paivana 0de0362..9089f35 master -> master Test now fail where the logs say |
|
|
Ok, I fixed some stuff. We're now getting a 400 Bad request from the latest merchant because the wallet submits the 'website' in the POST /templates/$TEMPLATE_ID request using URI-encoding ("http%3A%2F%2Flocalhost%3A8088%2Findex.html") instead of as a simple URI --- and the URI-encoded fulfillment URL does not match the regex. This is probably because it was taken from the taler://pay-template/ URI without decoding first. => sebasjm: please fix in wallet-core by adding the URI decoder in the right spot. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-04-22 23:01 | Christian Grothoff | New Issue | |
| 2026-04-22 23:01 | Christian Grothoff | Status | new => assigned |
| 2026-04-22 23:01 | Christian Grothoff | Assigned To | => avalos |
| 2026-04-22 23:12 | Christian Grothoff | Relationship added | child of 0010667 |
| 2026-04-22 23:12 | Christian Grothoff | Relationship added | child of 0010758 |
| 2026-04-22 23:14 | Christian Grothoff | Note Added: 0028442 | |
| 2026-04-22 23:16 | Christian Grothoff | Note Added: 0028443 | |
| 2026-04-22 23:19 | Christian Grothoff | Note Added: 0028444 | |
| 2026-04-24 16:25 | sebasjm | Note Added: 0028455 | |
| 2026-04-24 16:50 | sebasjm | Note Added: 0028456 | |
| 2026-04-24 16:50 | sebasjm | Assigned To | avalos => sebasjm |
| 2026-04-24 18:13 | sebasjm | Note Added: 0028458 | |
| 2026-04-24 18:13 | sebasjm | Assigned To | sebasjm => Christian Grothoff |
| 2026-04-24 18:13 | sebasjm | Status | assigned => feedback |
| 2026-04-24 20:10 | sebasjm | Note Added: 0028459 | |
| 2026-04-24 20:10 | sebasjm | File Added: image.png | |
| 2026-04-24 20:10 | sebasjm | Assigned To | Christian Grothoff => sebasjm |
| 2026-04-24 20:11 | sebasjm | Status | feedback => assigned |
| 2026-04-24 20:11 | sebasjm | Note Added: 0028460 | |
| 2026-04-24 20:12 | sebasjm | Note Added: 0028461 | |
| 2026-04-24 22:41 | sebasjm | Note Added: 0028462 | |
| 2026-04-24 22:41 | sebasjm | Assigned To | sebasjm => Christian Grothoff |
| 2026-04-24 22:42 | sebasjm | Note Added: 0028463 | |
| 2026-04-25 22:13 | Christian Grothoff | Note Added: 0028464 | |
| 2026-04-25 22:13 | Christian Grothoff | Assigned To | Christian Grothoff => sebasjm |
| 2026-04-27 14:09 | sebasjm | Note Added: 0028467 | |
| 2026-04-27 16:02 | sebasjm | Note Added: 0028471 | |
| 2026-04-27 16:02 | sebasjm | Assigned To | sebasjm => Christian Grothoff |
| 2026-04-27 16:09 | sebasjm | Note Added: 0028472 | |
| 2026-04-27 17:25 | sebasjm | Note Added: 0028475 | |
| 2026-04-27 22:32 | Christian Grothoff | Note Added: 0028480 | |
| 2026-04-27 22:32 | Christian Grothoff | Assigned To | Christian Grothoff => sebasjm |