1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#!/bin/bash
# This file is part of TALER
# Copyright (C) 2014-2021 Taler Systems SA
#
# TALER is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3, or
# (at your option) any later version.
#
# TALER is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with TALER; see the file COPYING. If not, see
# <http://www.gnu.org/licenses/>
#
. initialize_taler_system.sh
echo -n "Configuring 'default' instance ..."
STATUS=$(curl -H "Content-Type: application/json" -X POST \
http://localhost:9966/management/instances \
-d '{"auth":{"method":"token","token":"secret-token:new_value"},"payto_uris":["payto://x-taler-bank/localhost/43"],"id":"default","name":"default","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us" : 3600000000},"default_pay_delay":{"d_us": 3600000000}}' \
-w "%{http_code}" -s -o /dev/null)
if [ "$STATUS" != "204" ]
then
echo 'should respond ok, instance created. got:' $STATUS
exit 1
fi
echo " OK"
kill $MERCHANT_HTTPD_PID
wait $MERCHANT_HTTPD_PID
NEW_SECRET=different_value
taler-merchant-httpd -a "${NEW_SECRET}" -c "${CONF}" -L DEBUG 2> taler-merchant-httpd.log &
MERCHANT_HTTPD_PID=$!
#taler-merchant-httpd -c $CONF -L DEBUG 2> taler-merchant-httpd.log &
echo -n "Waiting for the merchant..."
# Wait for merchant to be available (usually the slowest)
for n in `seq 1 50`
do
echo -n "."
sleep 0.1
OK=0
# merchant
wget --waitretry=0 --timeout=1 http://localhost:9966/ -o /dev/null -O /dev/null >/dev/null || continue
OK=1
break
done
echo -n "Creating order to test auth is ok..."
STATUS=$(curl -H "Content-Type: application/json" -X POST \
'http://localhost:9966/instances/default/private/orders' \
-H 'Authorization: Bearer secret-token:'$NEW_SECRET \
-d '{"order":{"amount":"TESTKUDOS:1","summary":"payme"}}' \
-w "%{http_code}" -s -o $LAST_RESPONSE)
if [ "$STATUS" != "200" ]
then
echo 'should response ok, order created. got:' $STATUS `cat $LAST_RESPONSE`
exit 1
fi
ORDER_ID=`jq -e -r .order_id < $LAST_RESPONSE`
TOKEN=`jq -e -r .token < $LAST_RESPONSE`
STATUS=$(curl "http://localhost:9966/instances/default/private/orders/${ORDER_ID}" \
-H 'Authorization: Bearer secret-token:'$NEW_SECRET \
-w "%{http_code}" -s -o $LAST_RESPONSE)
if [ "$STATUS" != "200" ]
then
echo 'should response ok, getting order info before claming it. got:' $STATUS `cat $LAST_RESPONSE`
exit 1
fi
PAY_URL=`jq -e -r .taler_pay_uri < $LAST_RESPONSE`
echo OK order $ORDER_ID with $TOKEN
echo -n "Configuring 'second' instance ..."
STATUS=$(curl -H "Content-Type: application/json" -X POST \
-H 'Authorization: Bearer secret-token:'$NEW_SECRET \
http://localhost:9966/management/instances \
-d '{"auth":{"method":"token","token":"secret-token:second"},"payto_uris":["payto://x-taler-bank/localhost/43"],"id":"second","name":"second","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us" : 3600000000},"default_pay_delay":{"d_us": 3600000000}}' \
-w "%{http_code}" -s -o /dev/null)
if [ "$STATUS" != "204" ]
then
echo 'should respond ok, instance created. got:' $STATUS
exit 1
fi
echo "OK"
echo -n "Updating 'second' instance token using the 'default' auth token..."
STATUS=$(curl -H "Content-Type: application/json" -X POST \
-H 'Authorization: Bearer secret-token:'$NEW_SECRET \
http://localhost:9966/management/instances/second/auth \
-d '{"method":"token","token":"secret-token:new_one"}' \
-w "%{http_code}" -s -o /dev/null)
if [ "$STATUS" != "204" ]
then
echo 'should respond ok, instance auth token changed. got:' $STATUS
exit 1
fi
echo " OK"
exit 0
|