This is due to the behavior of call(). Call is for read-only, e.g. any state alterations done in the function are not persistent. If you change the instances of instance.addPayment.call() to instance.addPayment(), it will persist the changes.
There is another complication of course, that you are using the return value of addPayment, which doesn't really ...
I used the byte32 values to convert to string using a hex to string converter website. The website also displays these weird characters.
Then I tried stripping all characters before and including x, and also all the 0's and now I got the desired output
Then I tried passing 776fe to web3.toAscii() and got the desired output.
Use web3.toUtf8() instead
When issuing certificate, University sends its details, such as student name, degree, and certificate ID, to the smart contract, and smart contract.
Smart contract checks, that the information originates form the University and, if so, logs the information as an event.
Now, having certificate ID one may query blockchain events and find out whether ...