I'm facing troubles implementing paypal recurring payment with the API process and the sandbox. I succeed to create the subscription button and redirect the user to the paypal express checkout page. But the custom field is missing in some IPN generated by paypal and I really need this field.
Here are the requests I send while generating the subscription button:
METHOD=SetExpressCheckout
&VERSION=94.0
&PWD=123456
&[email protected]
&SIGNATURE=mySignature
&PAYMENTREQUEST_0_AMT=5.00
&PAYMENTREQUEST_0_PAYMENTACTION=Sale
&PAYMENTREQUEST_0_CURRENCYCODE=EUR
&RETURNURL=http%3A%2F%2Fwww.myWebSite.com?ok
&CANCELURL=http%3A%2F%2Fwww.myWebSite.com?ko
&L_BILLINGTYPE0=RecurringPayments
&L_BILLINGAGREEMENTDESCRIPTION0=test+paypal
&REQCONFIRMSHIPPING=0
&NOSHIPPING=1
&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital
&L_PAYMENTREQUEST_0_NAME0=test+paypal
&L_PAYMENTREQUEST_0_AMT0=5.00
&L_PAYMENTREQUEST_0_QTY0=1
&PAYMENTREQUEST_0_CUSTOM=custom_var1%3Dvalue1%7Ccustom_var2%3Dvalue2
After the user has confirmed the transaction, he is coming back to my website and I have to verify the informations and to create the recurring profil. Here are the requests I do :
METHOD=GetExpressCheckoutDetails
&VERSION=94.0
&PWD=123456
&[email protected]
&SIGNATURE=mySignature
&TOKEN=theToken
METHOD=CreateRecurringPaymentsProfile
&VERSION=94.0
&PWD=123456
&[email protected]
&SIGNATURE=mySignature
&TOKEN=theToken
&AMT=5.00
&CURRENCYCODE=EUR
&PROFILESTARTDATE=2013-02-04T15%3A16%3A24%2B01%3A00
&BILLINGPERIOD=Day
&BILLINGFREQUENCY=1
&DESC=test+paypal
METHOD=DoExpressCheckoutPayment
&VERSION=94.0
&PWD=123456
&[email protected]
&SIGNATURE=mySignature
&TOKEN=theToken
&PAYERID=JZUVX4TAHRHRU
&PAYMENTREQUEST_0_PAYMENTACTION=Sale
&PAYMENTREQUEST_0_AMT=5.00
&PAYMENTREQUEST_0_CURRENCYCODE=EUR
&PAYMENTREQUEST_0_NOTIFYURL=http%3A%2F%2Fwww.myWebSite.com?notify
&PAYMENTREQUEST_0_CUSTOM=custom_var1%3Dvalue1%7Ccustom_var2%3Dvalue2
After doing this I receive these IPN :
Array
(
[transaction_subject] => test paypal
[payment_date] => 06:01:52 Feb 04, 2013 PST
[txn_type] => express_checkout
[last_name] => numerik
[residence_country] => FR
[item_name] =>
[payment_gross] =>
[mc_currency] => EUR
[payment_type] => instant
[protection_eligibility] => Ineligible
[verify_sign] => myVerifySign
[payer_status] => verified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => [email protected]
[txn_id] => 6XC11065S3796804E
[quantity] => 1
[receiver_email] => [email protected]
[first_name] => buyer
[payer_id] => myPayerId
[receiver_id] => myReceiverId
[item_number] =>
[handling_amount] => 0.00
[payment_status] => Completed
[payment_fee] =>
[mc_fee] => 0.42
[shipping] => 0.00
[mc_gross] => 5.00
[custom] => custom_var1=value1|custom_var2=value2
[charset] => windows-1252
[notify_version] => 3.7
[ipn_track_id] => ab76ea3421261
)
Array
(
[payment_cycle] => Daily
[txn_type] => recurring_payment_profile_created
[last_name] => numerik
[next_payment_date] => 02:00:00 Feb 04, 2013 PST
[residence_country] => FR
[initial_payment_amount] => 0.00
[currency_code] => EUR
[time_created] => 06:01:47 Feb 04, 2013 PST
[verify_sign] => myVerifySign
[period_type] => Regular
[payer_status] => verified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => [email protected]
[first_name] => buyer
[receiver_email] => [email protected]
[payer_id] => myPayerId
[product_type] => 1
[shipping] => 0.00
[amount_per_cycle] => 5.00
[profile_status] => Active
[charset] => windows-1252
[notify_version] => 3.7
[amount] => 5.00
[outstanding_balance] => 0.00
[recurring_payment_id] => myRecurringPaymentId
[product_name] => test paypal
[ipn_track_id] => a8adfdf8b61d3
)
As you can see in the 1st IPN the field custom is available but not in the second one. Does anyone know what I'm missing for retrieving the custom field in the 2nd IPN ?