I am having problems implementing a PayPal recursive payment with an API process and a sandbox. I managed to create a subscription button and redirect the user to the PayPal express payment page. But the user field is missing in some IPN generated by paypal, and I really need this field.
Here are the requests that I send when creating a subscribe button:
METHOD=SetExpressCheckout &VERSION=94.0 &PWD=123456 & USER=myEmail@biz.com &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 returns to my site, and I have to check the information and create a duplicate profile. Here are my queries:
METHOD=GetExpressCheckoutDetails &VERSION=94.0 &PWD=123456 & USER=myEmail@biz.com &SIGNATURE=mySignature &TOKEN=theToken METHOD=CreateRecurringPaymentsProfile &VERSION=94.0 &PWD=123456 & USER=myEmail@biz.com &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 & USER=myEmail@biz.com &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 that, I get these IPNs:
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] => myEmail@per.com [txn_id] => 6XC11065S3796804E [quantity] => 1 [receiver_email] => myEmail@biz.com [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] => myEmail@per.com [first_name] => buyer [receiver_email] => myEmail@biz.com [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 first IPN, custom fields are available, but not in the second. Does anyone know what I am missing to get a custom field in the second IPN?
source share