缺少PAYPAL IPN自定义字段
我在使用API流程和沙箱实现paypal定期支付时遇到了麻烦。 我成功地创建了订阅按钮,并将用户重定向到paypal express结帐页面。 但是paypal生成的一些IPN中缺少自定义字段,我真的需要这个字段 以下是生成订阅按钮时发送的请求:缺少PAYPAL IPN自定义字段,paypal,paypal-ipn,Paypal,Paypal Ipn,我在使用API流程和沙箱实现paypal定期支付时遇到了麻烦。 我成功地创建了订阅按钮,并将用户重定向到paypal express结帐页面。 但是paypal生成的一些IPN中缺少自定义字段,我真的需要这个字段 以下是生成订阅按钮时发送的请求: METHOD=SetExpressCheckout &VERSION=94.0 &PWD=123456 &USER=myEmail@biz.com &SIGNATURE=mySignature &PAYMENTR
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
在用户确认交易后,他将返回我的网站,我必须验证信息并创建定期profil。
以下是我的要求:
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
完成此操作后,我收到以下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] => 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
)
正如您在第一个IPN中看到的,自定义字段可用,但在第二个IPN中不可用。
有人知道我在第二个IPN中检索自定义字段时缺少了什么吗?您最好的选择是将
PROFILEREFERENCE
添加到您的CreateRecurringPaymentsProfile调用中。它将在IPN中以rp\u invoice\u id
的形式返回,您的DoExpressCheckoutPayment请求包含自定义参数,这就是您为该交易返回该参数的原因。CreateRecurringPaymentsProfile请求未包含自定义参数,因此不会返回
这就是说,CRPP似乎无法使用自定义参数,因此您需要在本地保存数据,并在CRPP请求的PROFILEREFERENCE参数中包含本地记录ID。这样,它将按照Matt Cole建议的rp\u invoice\u id返回IPN,您可以使用该记录id相应地从数据库中提取自定义数据。感谢您提供的提示,这将非常有用。感谢您的回复,但Andrew的回答更详细。这是否有文档记录?我一点也看不见