jenkins-bot has submitted this change and it was merged.
Change subject: Support query_string response parsing
......................................................................
Support query_string response parsing
This decodes a URL-encoded and query-string delimited response body.
Change-Id: I448db2cdfbf5d07fab9dcb362d90f518f730600f
---
M gateway_common/GatewayType.php
M gateway_common/gateway.adapter.php
2 files changed, 16 insertions(+), 5 deletions(-)
Approvals:
Ejegg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/gateway_common/GatewayType.php b/gateway_common/GatewayType.php
index b840d5b..763dad2 100644
--- a/gateway_common/GatewayType.php
+++ b/gateway_common/GatewayType.php
@@ -202,8 +202,13 @@
function getCommunicationType();
/**
- * Data format for responses coming back from the processor.
- * Should be 'xml', 'json', or 'delimited'
+ * Data format for responses coming back from the processor, from
+ * getFormattedResponse. Should be one of:
+ * 'xml': Parse XML to a DomDocument.
+ * 'json': Parse JSON into an array tree.
+ * 'delimited': Parse a character-delimited list into an array.
+ * 'query_string': Otherwise known as
application/x-www-form-urlencoded.
+ * Parse a query string and urldecode into a map array.
*
* @return string
*/
diff --git a/gateway_common/gateway.adapter.php
b/gateway_common/gateway.adapter.php
index 4454914..8111b78 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -1443,10 +1443,11 @@
// For anything else, delete all the headers and the blank line
after
$noHeaders = preg_replace( '/^.*?\n\r?\n/ms', '', $rawResponse,
1 );
$this->logger->info( "Raw Response:" . $noHeaders );
- if ( $type === 'json' ) {
+ switch ( $type ) {
+ case 'json':
return json_decode( $noHeaders, true );
- }
- if ( $type === 'delimited' ) {
+
+ case 'delimited':
$delimiter = $this->transaction_option(
'response_delimiter' );
$keys = $this->transaction_option( 'response_keys' );
if ( !$delimiter || !$keys ) {
@@ -1458,6 +1459,11 @@
throw new InvalidArgumentException( 'Wrong
number of values found in delimited response.');
}
return $combined;
+
+ case 'query_string':
+ $parsed = array();
+ parse_str( $noHeaders, $parsed );
+ return $parsed;
}
return $noHeaders;
}
--
To view, visit https://gerrit.wikimedia.org/r/286703
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I448db2cdfbf5d07fab9dcb362d90f518f730600f
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>
Gerrit-Reviewer: AndyRussG <[email protected]>
Gerrit-Reviewer: Cdentinger <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
Gerrit-Reviewer: Ssmith <[email protected]>
Gerrit-Reviewer: XenoRyet <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits