I don't see that you're redirecting the user anywhere..?? After you make the call to Pay you have to redirect the user over to PayPal to sign in and authenticate the payment. The only time you wouldn't do that is if you're including a preapproval key in the Pay request, but I don't see that you are.
You need append the paykey that you get to the end of the PayPal URL that you redirect to. Here's a sample: https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=AP-3VV02679XF235284R
Until the user logs in and completes the payment for that paykey it will indeed just be created.
I actually do see some info about the redirect URL in the comments of your code, but I don't see anything actually doing that redirect to send the user there.
----- UPDATE -----
Now that I see you're doing an implicit payment, you just need to make sure to include the senderEmail in the request. Here's a sample of a Pay request I just made that worked with implicit approval so the redirect and further authentication was not necessary.
<?xml version="1.0" encoding="utf-8"?>
<PayRequest xmlns="http://svcs.paypal.com/types/ap">
<requestEnvelope xmlns="">
<detailLevel>ReturnAll</detailLevel>
<errorLanguage>en_US</errorLanguage>
</requestEnvelope>
<actionType xmlns="">PAY</actionType>
<cancelUrl xmlns="">http://paypal.angelleye.com/paypal/class/1.2/Pay_Cancel.php</cancelUrl>
<clientDetails xmlns="">
<applicationId xmlns="">APP-80W284485P519543T</applicationId>
<ipAddress xmlns="">192.168.1.115</ipAddress>
<partnerName xmlns="">Always Give Back</partnerName>
</clientDetails>
<currencyCode xmlns="">USD</currencyCode>
<receiverList xmlns="">
<receiver xmlns="">
<amount xmlns="">10.00</amount>
<email xmlns="">sandbo_1204199080_biz@angelleye.com</email>
</receiver>
<receiver xmlns="">
<amount xmlns="">5.00</amount>
<email xmlns="">usb_1329725429_biz@angelleye.com</email>
</receiver>
</receiverList>
<sender>
<useCredentials xmlns=""></useCredentials>
</sender>
<account xmlns="">
<phone xmlns=""></phone>
</account>
<returnUrl xmlns="">http://paypal.angelleye.com/paypal/class/1.2/Pay_Return.php</returnUrl>
<senderEmail xmlns="">sandbo_1215254764_biz@angelleye.com</senderEmail>
</PayRequest>
Here is the response, which shows the paymentExecStatus is fully completed as oppose to just created/pending like it would be without the implicit approval.
<?xml version='1.0' encoding='UTF-8'?>
<ns2:PayResponse xmlns:ns2="http://svcs.paypal.com/types/ap">
<responseEnvelope>
<timestamp>2014-01-20T07:53:08.420-08:00</timestamp>
<ack>Success</ack>
<correlationId>c74cd2a669678</correlationId>
<build>7935900</build>
</responseEnvelope>
<payKey>AP-39D64611TH198910V</payKey>
<paymentExecStatus>COMPLETED</paymentExecStatus>
<paymentInfoList>
<paymentInfo>
<transactionId>0M064165EV3552504</transactionId>
<transactionStatus>COMPLETED</transactionStatus>
<receiver>
<amount>10.00</amount>
<email>sandbo_1204199080_biz@angelleye.com</email>
<primary>false</primary>
<accountId>E7BTGVXBFSUAU</accountId>
</receiver>
<pendingRefund>false</pendingRefund>
<senderTransactionId>43F26555RA073153C</senderTransactionId>
<senderTransactionStatus>COMPLETED</senderTransactionStatus>
</paymentInfo>
<paymentInfo>
<transactionId>7K9309808X980452U</transactionId>
<transactionStatus>COMPLETED</transactionStatus>
<receiver>
<amount>5.00</amount>
<email>usb_1329725429_biz@angelleye.com</email>
<primary>false</primary>
<accountId>C9TAVNJFATXCS</accountId>
</receiver>
<pendingRefund>false</pendingRefund>
<senderTransactionId>0M822840XM282203C</senderTransactionId>
<senderTransactionStatus>COMPLETED</senderTransactionStatus>
</paymentInfo>
</paymentInfoList>
<sender>
<accountId>ATSCG2QMC9KAU</accountId>
</sender>
</ns2:PayResponse>
So, whatever class library you're using should give you the ability to easily add the additional senderEmail parameter and that would solve your issue.