SPI isn't that hard.
My sketch wasn't that complex. I could probably advise more if I had a link to the datasheet for your reader.
some noob explanation of ow str[] is getting populated with any data? here in the beginning of the script (loop)..
I presume this line writes to str:
status = MFRC522_Request(PICC_REQIDL, str);