mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2010-04-08 09:38 pm

[dw-free] Implement new payment system

[commit: http://hg.dwscoalition.org/dw-free/rev/a910a04d4e09]

http://bugs.dwscoalition.org/show_bug.cgi?id=2423

Update admin tools to show cart data for new style orders and dump the new
tables.

Patch by [staff profile] mark.

Files modified:
  • cgi-bin/LJ/Widget/ShopCart.pm
  • htdocs/admin/pay/view.bml
--------------------------------------------------------------------------------
diff -r c00f99f10b2a -r a910a04d4e09 cgi-bin/LJ/Widget/ShopCart.pm
--- a/cgi-bin/LJ/Widget/ShopCart.pm	Wed Apr 07 18:38:30 2010 +0000
+++ b/cgi-bin/LJ/Widget/ShopCart.pm	Thu Apr 08 21:38:26 2010 +0000
@@ -79,7 +79,7 @@ sub render_body {
         $ret .= "<td>" . ( $item->deliverydate ? $item->deliverydate : $class->ml( 'widget.shopcart.deliverydate.asap' ) ) . "</td>";
         $ret .= "<td>" . $item->t_html( admin => $opts{admin} ) . "</td>";
         $ret .= "<td>" . $item->from_html . "</td>";
-        $ret .= "<td>" . ( $item->random ? 'Y' : 'N' ) . "</td>" if $opts{admin};
+        $ret .= "<td>" . ( ref $item =~ /Account/ && $item->random ? 'Y' : 'N' ) . "</td>" if $opts{admin};
         $ret .= "<td>" . $item->display_paid . "</td>\n";
 
         if ( $opts{admin} ) {
diff -r c00f99f10b2a -r a910a04d4e09 htdocs/admin/pay/view.bml
--- a/htdocs/admin/pay/view.bml	Wed Apr 07 18:38:30 2010 +0000
+++ b/htdocs/admin/pay/view.bml	Thu Apr 08 21:38:26 2010 +0000
@@ -109,7 +109,7 @@ EOF
     $body .= "<table border='1'>";
     $body .= "<tr><th>From:</th><td>$from</td></tr>";
     $body .= "<tr><th>Date:</th><td>" . DateTime->from_epoch( epoch => $cart->starttime )->strftime( "%F %r %Z" ) . "</td></tr>";
-    $body .= "<tr><th>Total:</th><td>\$" . $cart->display_total . " USD</td></tr>";
+    $body .= "<tr><th>Total:</th><td>" . $cart->display_total . "</td></tr>";
     $body .= "<tr><th>Payment Method:</th><td>$paystr</td></tr>";
     $body .= "<tr><th>Uniq:</th><td>" . $cart->uniq . "</td></tr>";
     $body .= "<tr><th>IP:</th><td>" . $cart->ip . "</td></tr>";
@@ -134,7 +134,7 @@ EOF
 
             my $hr;
             my $out = sub {
-                foreach ( qw/ SIGNATURE USER PWD / ) {
+                foreach ( qw/ SIGNATURE USER PWD ccnumber password username / ) {
                     $hr->{$_} = '<em>redacted</em>'
                         if exists $hr->{$_};
                 }
@@ -148,10 +148,14 @@ EOF
             };
             return $out->() if $hr;
 
+            # but see if it seems to be a unix time we can convert to a readable one
+            return LJ::mysql_time( $val, 1 )
+                if $val =~ /^1\d{9}$/;
+
             # and now fall back to urlencoded ...
             return $val
                 unless $val =~ /&/ && $val =~ /=/;
-            LJ::decode_url_string( $val, $hr );
+            LJ::decode_url_string( $val, $hr = {} );
             return $out->();
         };
 
@@ -216,6 +220,13 @@ EOF
         $body .= "<h2>raw: gco_log (GCO raw)</h2>";
         $dump->( 'SELECT * FROM gco_log WHERE gcoid = ?', $engine->gcoid );
 
+    } elsif ( $classname eq 'CreditCard' ) {
+        # dump the tables
+        $body .= "<h2>raw: cc_trans (raw transaction data)</h2>\n";
+        $dump->( 'SELECT * FROM cc_trans WHERE cartid = ?', $cart->id );
+        $body .= "<h2>raw: cc_log (raw server query/response log)</h2>\n";
+        $dump->( 'SELECT * FROM cc_log WHERE cartid = ?', $cart->id );
+
     } elsif ( $classname eq 'CheckMoneyOrder' ) {
         # show the payer's details.
         $body .= "<h2>Payer Details</h2>";
--------------------------------------------------------------------------------