Using Dolphin 6.1.4.
When I setup a paypal sandbox I am able to buy an upgrade for a test account and move it from 'standard' to a 'premium' account with no issues. However, when I test it with a live paypal transfer, this upgrade fails. If I look in the database table Transactions, I can see that the row for the transaction is still set to Pending.
What I'm noticing is that in the database for this row, the gtwTransactionID is a hash with the a timestamp of when the transaction started (in the initiateTransaction() function in checkout.inc.php). But when paypal sends information about the completed transaction to my server, it is saying the txn_id is something different. In finishTransaction() in checkout.inc.php, it is only looking for rows where the gtwTransactionID is txn_id, which it won't find because that column is still the timestamp hash.
Is this a bug or am I doing something wrong?
The following is the debug log for a live test:
----------- start log -----------
Debug started at Saturday 21st 2009f February 2009 01:49:46 PM
PayPal checkout external call: --------------
Conf: Array
ID: 1
Name: paypal
Caption: PayPal
Active: 1
Mode: live
Debug: 1
CheckoutFilename:
CheckoutURL:
SupportsRecurring: 1
Param_auth_token:
Param_business: [merchant]@[addr].com
Param_connection_type: SSL
Param_no_note: 1
Param_process_type: IPN
Param_test_business: [merchant_test]@[addr].com
GET: Array
POST: Array
transaction_subject: b45fa0982e9fdd49d565ebaae755e534
payment_date: 10:47:15 Feb 21, 2009 PST
txn_type: web_accept
last_name: Buyer
residence_country: US
item_name: Membership purchase - Premium
payment_gross: 1.00
mc_currency: USD
business: [merchant]@[addr].com
payment_type: instant
protection_eligibility: Ineligible
verify_sign: AiPC9BjkCyDFQXbSkoZcgqH3hpacATu12UiWNiq9Yo0MRsjWFEO7GKC3
payer_status: verified
tax: 0.00
payer_email: [buyer]@[addr].com
txn_id: 6CY23174JS752964F
quantity: 1
receiver_email: [merchant]@[addr].com
first_name: Michael
payer_id: 84V424A3263XJ
receiver_id: 2NAUY3LR6XJCS
item_number: 13
handling_amount: 0.00
payment_status: Completed
payment_fee: 0.33
mc_fee: 0.33
shipping: 0.00
mc_gross: 1.00
custom: b45fa0982e9fdd49d565ebaae755e534
charset: windows-1252
notify_version: 2.7
Payment event: Payment start. Subscriptional: false
Direct/IPN validation for transaction: Array
transaction_subject: b45fa0982e9fdd49d565ebaae755e534
payment_date: 10:47:15 Feb 21, 2009 PST
txn_type: web_accept
last_name: Buyer
residence_country: US
item_name: Membership purchase - Premium
payment_gross: 1.00
mc_currency: USD
business: [merchant]@[addr].com
payment_type: instant
protection_eligibility: Ineligible
verify_sign: AiPC9BjkCyDFQXbSkoZcgqH3hpacATu12UiWNiq9Yo0MRsjWFEO7GKC3
payer_status: verified
tax: 0.00
payer_email: [buyer]@[addr].com
txn_id: 6CY23174JS752964F
quantity: 1
receiver_email: [merchant]@[addr].com
first_name: Michael
payer_id: 84V424A3263XJ
receiver_id: 2NAUY3LR6XJCS
item_number: 13
handling_amount: 0.00
payment_status: Completed
payment_fee: 0.33
mc_fee: 0.33
shipping: 0.00
mc_gross: 1.00
custom: b45fa0982e9fdd49d565ebaae755e534
charset: windows-1252
notify_version: 2.7
Direct/IPN reply lines: Array
0:
----------- end log -----------
And here is what the row in the Transactions table looks like for this payment (before and after payment the row is unchanged):
----------- start row -----------
ID 15
IDMember 1
IDProvider 1
gtwTransactionID 12352438318591
Date 2009-02-21 14:17:11
Amount 1
Currency USD
Status pending
Data 1|membership|1.00|seN3G.jp/dmjk|USD|4|seJxu1QW0Wn....
Description Membership purchase - Premium
Note NULL
----------- end row -----------
Any help would be appreciated, thanks.