I have reported IPN error related issue in detail on ubercart issue queue because it seems the same code has been used in uc_recurring as well.
The solutions to this problem (given by Tim) is as follows
According to #2555649: drupal_http_request() should allow caller to set the Host header drupal_http_request() ignores/overrides the 'Host' header if it provided in the options like the patch does. Also, drupal_http_request() is still HTTP 1.0 (despite 10 YEARS of issues trying to get it updated, see for example
#104693: Always send HTTP/1.1 in headers) so just adding the 'Host' header is insufficient. Thus, this patch does nothing UNLESS you also use the chr module which replaces drupal_http_request() with a cURL implementation. If we are going to try to work around this Drupal core problem, then we might as well go the whole way and replace the drupal_http_request() with explicit calls to cURL methods rather than to depend on the chr module.A better way, as I said in #4, is to just replace that one drupal_http_request() in uc_paypal with a curl_exec(). It's only a few lines of code for the replacement, and we already use curl in several other modules such as uc_authorizenet
Following the aforementioned details, I am addition patch for uc_recurring paypal ipn.
Please review the patch.
Comment | File | Size | Author |
---|---|---|---|
#2 | uc_recurring_IPN_400_error-2791491.patch | 6.72 KB | sukh.singh |
Comments
Comment #2
sukh.singh CreditAttribution: sukh.singh as a volunteer commentedComment #3
vaccinemedia CreditAttribution: vaccinemedia commented@sukh.singh this patch no longer applies to the latest dev version of uc_recurring. Can you please re-roll against the latest dev and re-submit the patch?