Awight has uploaded a new change for review.
https://gerrit.wikimedia.org/r/277981
Change subject: Split ContributionTrackingPlusUnique into a reusable thing
......................................................................
Split ContributionTrackingPlusUnique into a reusable thing
Change-Id: Ic55fd59ae1a9ee35ab2cf94291ff82045c7e8582
---
M DonationInterface.php
A gateway_common/ContributionTrackingPlusUnique.php
M globalcollect_gateway/globalcollect.adapter.php
3 files changed, 23 insertions(+), 14 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface
refs/changes/81/277981/1
diff --git a/DonationInterface.php b/DonationInterface.php
index ce62bca..533b5c4 100644
--- a/DonationInterface.php
+++ b/DonationInterface.php
@@ -39,6 +39,7 @@
*/
$wgAutoloadClasses['AmountInCents'] = __DIR__ .
'/gateway_common/AmountInCents.php';
$wgAutoloadClasses['BrazilianFiscalNumber'] = __DIR__ .
'/gateway_common/BrazilianFiscalNumber.php';
+$wgAutoloadClasses['ContributionTrackingPlusUnique'] = __DIR__ .
'/gateway_common/ContributionTrackingPlusUnique.php';
$wgAutoloadClasses['CurrencyRates'] = __DIR__ .
'/gateway_common/CurrencyRates.php';
$wgAutoloadClasses['CurrencyRatesModule'] = __DIR__ .
'/modules/CurrencyRatesModule.php';
$wgAutoloadClasses['CyclicalArray'] = __DIR__ .
'/globalcollect_gateway/CyclicalArray.php';
diff --git a/gateway_common/ContributionTrackingPlusUnique.php
b/gateway_common/ContributionTrackingPlusUnique.php
new file mode 100644
index 0000000..ce55166
--- /dev/null
+++ b/gateway_common/ContributionTrackingPlusUnique.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Some gateways need a unique ID for every API call, so we append a
+ * pseudorandom value to the contribution_tracking ID.
+ */
+class ContributionTrackingPlusUnique implements StagingHelper, UnstagingHelper
{
+ public function stage( GatewayType $adapter, $unstagedData,
&$stagedData ) {
+ $ctid = $unstagedData['contribution_tracking_id'];
+ //append timestamp to ctid
+ $ctid .= '.' . (( microtime( true ) * 1000 ) % 100000); //least
significant five
+ $stagedData['contribution_tracking_id'] = $ctid;
+ }
+
+ public function unstage( GatewayType $adapter, $stagedData,
&$unstagedData ) {
+ $ctid = $stagedData['contribution_tracking_id'];
+ $ctid = explode( '.', $ctid );
+ $ctid = $ctid[0];
+ $unstagedData['contribution_tracking_id'] = $ctid;
+ }
+}
diff --git a/globalcollect_gateway/globalcollect.adapter.php
b/globalcollect_gateway/globalcollect.adapter.php
index 2bf8cf7..7fd931e 100644
--- a/globalcollect_gateway/globalcollect.adapter.php
+++ b/globalcollect_gateway/globalcollect.adapter.php
@@ -2292,6 +2292,7 @@
public function defineDataTransformers() {
$this->data_transformers = array_merge(
parent::getCoreDataTransformers(), array(
new BrazilianFiscalNumber(),
+ new ContributionTrackingPlusUnique(),
) );
}
@@ -2656,20 +2657,6 @@
$this->transactions['INSERT_ORDERWITHPAYMENT']['values']['PURCHASETYPE'] = '1';
break;
}
- }
-
- protected function stage_contribution_tracking_id() {
- $ctid = $this->unstaged_data['contribution_tracking_id'];
- //append timestamp to ctid
- $ctid .= '.' . (( microtime( true ) * 1000 ) % 100000); //least
significant five
- $this->staged_data['contribution_tracking_id'] = $ctid;
- }
-
- protected function unstage_contribution_tracking_id() {
- $ctid = $this->staged_data['contribution_tracking_id'];
- $ctid = explode( '.', $ctid );
- $ctid = $ctid[0];
- $this->unstaged_data['contribution_tracking_id'] = $ctid;
}
/**
--
To view, visit https://gerrit.wikimedia.org/r/277981
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic55fd59ae1a9ee35ab2cf94291ff82045c7e8582
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits