New option --debug-paypal for payprocd.
authorWerner Koch <wk@gnupg.org>
Wed, 17 May 2017 08:18:21 +0000 (10:18 +0200)
committerWerner Koch <wk@gnupg.org>
Wed, 17 May 2017 08:24:33 +0000 (10:24 +0200)
* src/paypal.c (call_paypal): Add debug calls.
(paypal_checkout_prepare): Remove debug calls.
(paypal_checkout_execute): Ditto.
* src/paypal-ipn.c (call_verify): Add debug calls
* src/payprocd.h (opt): Add field DEBUG_PAYPAL.
* src/payprocd.c (oDebugPaypal): New.
(opts): Add --debug-paypal.
(parse_options): Set options.

Signed-off-by: Werner Koch <wk@gnupg.org>
src/paypal-ipn.c
src/paypal.c
src/payprocd.c
src/payprocd.h

index aeb8e24..11eb65a 100644 (file)
@@ -58,6 +58,9 @@ call_verify (int live, const char *request)
   if (err)
     goto leave;
 
+  if (opt.debug_paypal)
+    log_debug ("paypal-req: %s %s\n", "POST" , url);
+
   err = http_open (&http,
                    HTTP_REQ_POST,
                    url,
@@ -113,7 +116,9 @@ call_verify (int live, const char *request)
       goto leave;
     }
 
-  /* log_debug ("PayPal verification status '%s'\n", response); */
+  if (opt.debug_paypal)
+    log_debug ("paypal-rsp: %3d (%s) status='%.100s'\n",
+               status, gpg_strerror (err), response);
   err = !strcmp (response, "VERIFIED")? 0 : gpg_error (GPG_ERR_NOT_FOUND);
 
  leave:
index 02576c0..da0cb9b 100644 (file)
@@ -71,6 +71,9 @@ call_paypal (int bearer, const char *authstring,
   if (err)
     goto leave;
 
+  if (opt.debug_paypal)
+    log_debug ("paypal-req: %s %s\n", formdata? "POST" : "GET", url);
+
   err = http_open (&http,
                    kvformdata || formdata? HTTP_REQ_POST : HTTP_REQ_GET,
                    url,
@@ -157,6 +160,18 @@ call_paypal (int bearer, const char *authstring,
   else
     err = gpg_error (GPG_ERR_NOT_FOUND);
 
+  if (opt.debug_paypal)
+    {
+      char *tmp;
+
+      log_debug ("paypal-rsp: %3d (%s)", status, gpg_strerror (err));
+      tmp = cJSON_Print (*r_json);
+      if (tmp)
+        log_printf ("\n%s\n", tmp);
+      log_flush ();
+      xfree (tmp);
+    }
+
  leave:
   http_close (http, 0);
   http_session_release (session);
@@ -477,7 +492,6 @@ paypal_checkout_prepare (keyvalue_t *dict)
                      "oauth2/token", NULL,
                      hlpdict, NULL,
                      &status, &json);
-  log_debug ("call_paypal => %s status=%d\n", gpg_strerror (err), status);
   if (err)
     goto leave;
   if (status != 200)
@@ -552,7 +566,6 @@ paypal_checkout_prepare (keyvalue_t *dict)
                      "payments/payment", NULL,
                      NULL, request,
                      &status, &json);
-  log_debug ("call_paypal => %s status=%d\n", gpg_strerror (err), status);
   if (err)
     goto leave;
   if (status != 200 && status != 201)
@@ -705,7 +718,6 @@ paypal_checkout_execute (keyvalue_t *dict)
                      method, NULL,
                      NULL, request,
                      &status, &json);
-  log_debug ("call_paypal => %s status=%d\n", gpg_strerror (err), status);
   if (err)
     goto leave;
   if (status != 200 && status != 201)
index d6243dc..4bdae52 100644 (file)
@@ -96,6 +96,7 @@ enum opt_values
     oBackofficeKey,
     oDebugClient,
     oDebugStripe,
+    oDebugPaypal,
 
     oLast
   };
@@ -129,6 +130,7 @@ static ARGPARSE_OPTS opts[] = {
 
   ARGPARSE_s_n (oDebugClient, "debug-client", "debug I/O with the client"),
   ARGPARSE_s_n (oDebugStripe, "debug-stripe", "debug the Stripe REST"),
+  ARGPARSE_s_n (oDebugPaypal, "debug-paypal", "debug the PayPal REST"),
 
   ARGPARSE_end ()
 };
@@ -358,6 +360,7 @@ parse_options (int argc, char **argv)
         case oVerbose:  opt.verbose++; break;
         case oDebugClient: opt.debug_client++; break;
         case oDebugStripe: opt.debug_stripe++; break;
+        case oDebugPaypal: opt.debug_paypal++; break;
         case oNoDetach: opt.nodetach = 1; break;
         case oLogFile:  logfile = pargs.r.ret_str; break;
         case oNoLogFile: logfile = NULL; break;
index b739d5d..6018b84 100644 (file)
@@ -30,6 +30,7 @@ struct
   int nodetach;  /* Do not detach from the console.  */
   int debug_client;  /* Debug communication with the client.  */
   int debug_stripe;  /* Debug Stripe REST interaction.  */
+  int debug_paypal;  /* Debug PayPal REST interaction.  */
 
   int livemode;  /* Expect to be in live mode.  Default is test mode.  */
   char *stripe_secret_key;  /* The secret key for stripe.com */