That receipt looks great!
In answer to your question, NO, the paypal_transactions table do not have a user_id or any registration_id field. This table is simply a log of all the transactions that come in to OCS from PayPal, containing only the information that is submitted to OCS by the PayPal IPN. OCS does not, at the moment, have any type of interface that lets you access this table. In the limited functionality of OCS' paypal, this table only serves as a log of received transactions for fraud prevention (from people sending fake payments using previously received transactions) and to help resolve any accounting discrepancies.
We implemented a completed_payments table in OJS, which is more what you are looking for. However, this has not made its way over to OCS yet. This table is NOT meant to be a record of all payments, only paypal ones. You cannot enter your own transaction or make up your own transaction id's, since these are both generated by paypal.
You can use the receiver_email from the transactions table and link this to your users table in order to figure out what user originally submitted the transaction. From this, you can find the corresponding registration_id.
Hope this helps. If you have any more questions, please ask.
I'd be curious to see how you've implemented the receipts, if you're keen on sharing the code. Thanks!