View Issue Details

IDProjectCategoryView StatusLast Update
0011356Talerwallet (all platforms)public2026-04-25 22:13
ReporterChristian Grothoff Assigned Tosebasjm  
PriorityurgentSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version1.6 
Summary0011356: need paivana template support in wallet-core
DescriptionSee 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 ReproduceCompile 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.
TagsNo tags attached.

Relationships

child of 0010667 confirmedChristian Grothoff need paivana reverse proxy [5d] 
child of 0010758 confirmedChristian Grothoff turnstile should allow re-creating the order 

Activities

Christian Grothoff

2026-04-22 23:14

manager   ~0028442

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...

Christian Grothoff

2026-04-22 23:16

manager   ~0028443

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.

Christian Grothoff

2026-04-22 23:19

manager   ~0028444

Sebastian: if you can help fix this quickly, that'd be welcome ;-).

sebasjm

2026-04-24 16:25

developer   ~0028455

i will give it a try, i don't have a paivana setup but looks like a problem in taler-util

sebasjm

2026-04-24 16:50

developer   ~0028456

I see that the template interface changed a lot, it won't take me much to sync them up.
That may fix your problem

sebasjm

2026-04-24 18:13

developer   ~0028458

69b9d14ed..5c3313e86 spec updated.
all spa still doesn't support new template types that validation check is fixed

sebasjm

2026-04-24 20:10

developer   ~0028459

i have a setup now, and I can work on this next issue
image.png (31,848 bytes)   
image.png (31,848 bytes)   

sebasjm

2026-04-24 20:11

developer   ~0028460

since template_type is not yet supported is falling into the default

sebasjm

2026-04-24 20:12

developer   ~0028461

TBH You don't need a template_type in the merchant side if you already have the ID

sebasjm

2026-04-24 22:41

developer   ~0028462

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"
}

sebasjm

2026-04-24 22:42

developer   ~0028463

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)

Christian Grothoff

2026-04-25 22:13

manager   ~0028464

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?

Issue History

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