Patch by mark.
diffs (54 lines):
diff -r a2db74617fa1 -r 1a48f68a8811 htdocs/admin/pay/index.bml
--- a/htdocs/admin/pay/index.bml Wed May 06 19:09:48 2009 +0000
+++ b/htdocs/admin/pay/index.bml Thu May 07 01:47:03 2009 +0000
@@ -145,7 +145,7 @@ EOF
<input type="text" name="view" /> <input type="submit" value="Go" />
</form>
</li>
- <li>View cart/order ID:
+ <li>View cart/order ID (or PayPal transaction ID):
<form method="get" action="/admin/pay/view">
<input type="text" name="cartid" /> <input type="submit" value="Go" />
</form>
diff -r a2db74617fa1 -r 1a48f68a8811 htdocs/admin/pay/view.bml
--- a/htdocs/admin/pay/view.bml Wed May 06 19:09:48 2009 +0000
+++ b/htdocs/admin/pay/view.bml Thu May 07 01:47:03 2009 +0000
@@ -40,12 +40,13 @@ EOF
EOF
}
+ my $dbh = LJ::get_db_writer();
+
if ( my $code = $GET{code} ) {
my ( $acid ) = DW::InviteCodes->decode( $code );
return "Code seems invalid"
unless $acid;
- my $dbh = LJ::get_db_writer();
my $cartid = $dbh->selectrow_array( 'SELECT cartid FROM shop_codes
WHERE acid = ?', undef, $acid );
return $dbh->errstr if $dbh->err;
@@ -59,13 +60,20 @@ EOF
$body .= '<p>[ <a href="/admin/pay/index.bml"><< Back to Index</a>
]</p>';
return "Must provide cartid."
- unless $GET{cartid} && $GET{cartid} > 0;
+ unless $GET{cartid};
+ my $cartid = $GET{cartid};
- my $cartid = $GET{cartid} + 0;
+ # try loading it if it's a cart, or a txnid
+ if ( $cartid !~ /^\d+$/ ) {
+ $cartid = $dbh->selectrow_array( 'SELECT cartid FROM pp_trans WHERE
transactionid = ?', undef, $cartid );
+ return "Sorry, invalid transactionid or not found in database!"
+ unless $cartid && $cartid > 0;
+ }
my $cart = DW::Shop::Cart->get_from_cartid( $cartid )
or return "Sorry, invalid cart/cart not found in the database!";
- $cartid = $cart->id; # get a normalised value back
+ # we have to normalize this back, might have been a txnid
+ $cartid = $cart->id;
if ( LJ::did_post() && LJ::check_form_auth() && $POST{record_cmo} ) {
my $received_method = $POST{paymentmethod};
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog