Hi,
I see two issues with your code:
1. You do a redirect after displaying the message. So even though that message is added to the display buffer of PHP, the buffer is dumped by PHP when it does the redirect. Thus, it's normal nothing is displayed.
2. The onPaymentNotification function's displayed elements are automatically retrieved from the display buffer and stored in the payment log file (that you can access in the HikaShop configuration) when the onPaymentNotification function returns, so even if you remove the redirect, your message would only go in the payment log file. You would have to create a new buffer with the ob_start(); function before returning.
3. The onPaymentNotification function is usually called by the payment gateway, and in that case what you'll display in it will returned to the payment gateway, not the customer, and thus he won't see the message. That however, is not always the case (even thought it is for most payment gateways).