cgi: Improve Stripe recurring donations
authorWerner Koch <wk@gnupg.org>
Thu, 11 May 2017 14:30:16 +0000 (16:30 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 11 May 2017 14:30:29 +0000 (16:30 +0200)
cgi/procdonate.cgi
web/donate/checkout-cc.org

index 2a768b2..f2860c6 100755 (executable)
@@ -87,6 +87,7 @@ sub write_template ($) {
     my $publishname;
     my $check_paytype = 'none';
     my $stripe_data_email = '';
+    my $stripe_data_label_value = 'Donate now';
 
     # Avoid broken HTML attributes.
     $amount =~ s/\x22/\x27/g;
@@ -138,12 +139,15 @@ sub write_template ($) {
     } elsif ( $recur =~ /12/ ) {
         $recur_month   = ' selected="selected"';
         $recur_text    = 'monthly';
+        $stripe_data_label_value = 'Donate monthly';
     } elsif ( $recur =~ /4/ ) {
         $recur_quarter = ' selected="selected"';
         $recur_text    = 'quarterly';
+        $stripe_data_label_value = 'Donate quarterly';
     } elsif ( $recur =~ /1/ ) {
         $recur_year    = ' selected="selected"';
         $recur_text    = 'yearly';
+        $stripe_data_label_value = 'Donate yearly';
     }
 
 
@@ -208,6 +212,7 @@ sub write_template ($) {
             || s/(<selected=\x22selected\x22)?><!--RECUR_YEAR-->/$recur_year>/
             || s/<!--RECUR_TEXT-->/$recur_text/
             || s/<!--STRIPE_DATA_EMAIL-->/$stripe_data_email/
+            || s/<!--STRIPE_DATA_LABEL_VALUE-->/$stripe_data_label_value/
             || s/<!--PUBLISH_NAME-->/$publishname/
             || s/<!--SEPA_REF-->/$separef/
             || s/<!--ERRORSTR-->/$errorstr/
@@ -491,6 +496,8 @@ sub complete_stripe_checkout ()
 {
     my %data;
     my %stripe;
+    my $recur;
+    my $recur_text = '';
 
     # fixme: Change the error message to note that the card has not
     # been charged.  Somehow delete the token
@@ -522,17 +529,30 @@ sub complete_stripe_checkout ()
     }
 
     # Print thanks
+    $recur = $stripe{"Recur"};
+    if ( $recur =~ /12/ ) {
+        $recur_text    = 'Monthly';
+    } elsif ( $recur =~ /4/ ) {
+        $recur_text    = 'Quarterly';
+    } elsif ( $recur =~ /1/ ) {
+        $recur_text    = 'Yearly';
+    } else {
+        $recur_text    = 'Just once';
+    }
 
     $message = <<EOF;
-Amount ..: $stripe{"Amount"} $stripe{"Currency"}
-Recurring: $stripe{"Recur"}
-Desc ....: $stripe{"Desc"}
-Cardno...: *$stripe{"Last4"}
-Processor: Stripe
-Email ...: $stripe{"Email"}
-Charge-Id: $stripe{"Charge-Id"}
-Timestamp: $stripe{"_timestamp"}
+Amount ....: $stripe{"Amount"} $stripe{"Currency"}
+Recurring .: $recur_text
+Desc ......: $stripe{"Desc"}
+Cardno.....: *$stripe{"Last4"}
+Processor .: Stripe
+Charge-Id .: $stripe{"Charge-Id"}
+Timestamp .: $stripe{"_timestamp"}
+Email .....: $stripe{"Email"}
 EOF
+    if ($stripe{"account-id"} ne '') {
+        $message = $message . "Account-Id : " . $stripe{"account-id"};
+    }
     if ($stripe{"Live"} eq 'f') {
         $message = $message . "\n!!! TEST TRANSACTION !!!";
     }
index 69b2a87..c2809eb 100644 (file)
@@ -16,7 +16,8 @@ Information on your intended donation:
  <tr>
    <td align="right">Amount:</td>
    <td><!--AMOUNT-->
-       <!--CURRENCY--> <!--RECUR_TEXT--></td>
+       <!--CURRENCY-->
+       <!--RECUR_TEXT--></td>
  </tr>
  <tr>
    <td align="right">Name:</td>
@@ -67,8 +68,8 @@ Information on your intended donation:
         data-description="Donation to the GnuPG project"
         data-amount="<!--STRIPEAMOUNT-->"
         data-currency="<!--CURRENCY-->"
-        data-panel-label="Donate {{amount}} <!--RECUR_TEXT--> to GnuPG"
-        data-label="Donate <!--RECUR_TEXT--> now"
+        data-panel-label="Donate {{amount}} <!--RECUR_TEXT-->"
+        data-label="<!--STRIPE_DATA_LABEL_VALUE-->"
         <!--STRIPE_DATA_EMAIL-->
       >
       </script>