Skip to content

Commit 7b7ab5d

Browse files
Merge pull request #36 from xegole/keep_parameters_request
HPPManager instance allowing the key-value pairs from the merchant's
2 parents 9dff942 + 0818a7f commit 7b7ab5d

File tree

3 files changed

+36
-32
lines changed

3 files changed

+36
-32
lines changed

Example/RXPiOS/ViewController.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ final class ViewController: UIViewController, HPPManagerDelegate, GenericHPPMana
3333
hppManager.additionalHeaders = ["custom_header_1": "test param 1",
3434
"custom_header_2": "test param 2",
3535
"custom_header_3": "test param 3"]
36+
37+
hppManager.cardPaymentButtonText = "new pay"
3638
hppManager.presentViewInViewController(self)
3739
}
3840

Pod/Classes/RealexComponent/HPPManager.swift

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ public class GenericHPPManager<T: Decodable>: NSObject, HPPViewControllerDelegat
159159

160160
/// Used to add additional headers and attach them to request
161161
@objc public var additionalHeaders: [String: String]?
162+
163+
/// Used to add parameters and attach them to request
164+
@objc public var parameters = [String: String]()
162165

163166
/// The HPPManager's delegate to receive the result of the interaction.
164167
@objc public weak var delegate: HPPManagerDelegate?
@@ -207,15 +210,15 @@ public class GenericHPPManager<T: Decodable>: NSObject, HPPViewControllerDelegat
207210
/// - Parameter json: The dictionary of paramaters and values to be encoded.
208211
/// - Returns: The data encoded HTML string representation of the paramaters and values.
209212
private func httpBodyWithJSON(_ json: NSDictionary) -> Data {
210-
211-
var parameters = [String: String]()
213+
var parameters = self.parameters
212214
for (key, value) in json {
213215
if let key = key as? String, let value = value as? String {
214216
parameters[key] = value
215217
}
216218
}
217219
parameters["HPP_VERSION"] = "2"
218220
parameters["HPP_POST_RESPONSE"] = self.HPPRequestProducerURL.scheme! + "://" + self.HPPRequestProducerURL.host!
221+
219222

220223
let parameterString = parameters.stringFromHttpParameters()
221224
return parameterString.data(using: String.Encoding.utf8)!
@@ -224,41 +227,40 @@ public class GenericHPPManager<T: Decodable>: NSObject, HPPViewControllerDelegat
224227
/// Returns the paramaters which have been set on HPPManager as HTML string.
225228
/// - Returns: The HTML string representation of the HPP paramaters which have been set.
226229
private func getParametersString() -> String {
227-
var parameters = [String: String]()
228-
parameters["MERCHANT_ID"] = self.merchantId
229-
parameters["ACCOUNT"] = self.account
230-
parameters["ORDER_ID"] = self.orderId
231-
parameters["AMOUNT"] = self.amount
232-
parameters["CURRENCY"] = self.currency
233-
parameters["TIMESTAMP"] = self.timestamp
234-
parameters["AUTO_SETTLE_FLAG"] = self.autoSettleFlag
235-
parameters["COMMENT1"] = self.commentOne
236-
parameters["COMMENT2"] = self.commentTwo
237-
parameters["RETURN_TSS"] = self.returnTss
238-
parameters["SHIPPING_CODE"] = self.shippingCode
239-
parameters["SHIPPING_CO"] = self.shippingCountry
240-
parameters["BILLING_CODE"] = self.billingCode
241-
parameters["BILLING_CO"] = self.billingCountry
242-
parameters["CUST_NUM"] = self.customerNumber
243-
parameters["VAR_REF"] = self.variableReference
244-
parameters["PROD_ID"] = self.productId
245-
parameters["HPP_LANG"] = self.language
246-
parameters["CARD_PAYMENT_BUTTON"] = self.cardPaymentButtonText
247-
parameters["CARD_STORAGE_ENABLE"] = self.cardStorageEnable
248-
parameters["OFFER_SAVE_CARD"] = self.offerSaveCard
249-
parameters["PAYER_REF"] = self.payerReference
250-
parameters["PMT_REF"] = self.paymentReference
251-
parameters["PAYER_EXIST"] = self.payerExists
252-
parameters["VALIDATE_CARD_ONLY"] = self.validateCardOnly
253-
parameters["DCC_ENABLE"] = self.dccEnable
230+
self.parameters["MERCHANT_ID"] = self.merchantId
231+
self.parameters["ACCOUNT"] = self.account
232+
self.parameters["ORDER_ID"] = self.orderId
233+
self.parameters["AMOUNT"] = self.amount
234+
self.parameters["CURRENCY"] = self.currency
235+
self.parameters["TIMESTAMP"] = self.timestamp
236+
self.parameters["AUTO_SETTLE_FLAG"] = self.autoSettleFlag
237+
self.parameters["COMMENT1"] = self.commentOne
238+
self.parameters["COMMENT2"] = self.commentTwo
239+
self.parameters["RETURN_TSS"] = self.returnTss
240+
self.parameters["SHIPPING_CODE"] = self.shippingCode
241+
self.parameters["SHIPPING_CO"] = self.shippingCountry
242+
self.parameters["BILLING_CODE"] = self.billingCode
243+
self.parameters["BILLING_CO"] = self.billingCountry
244+
self.parameters["CUST_NUM"] = self.customerNumber
245+
self.parameters["VAR_REF"] = self.variableReference
246+
self.parameters["PROD_ID"] = self.productId
247+
self.parameters["HPP_LANG"] = self.language
248+
self.parameters["CARD_PAYMENT_BUTTON"] = self.cardPaymentButtonText
249+
self.parameters["CARD_STORAGE_ENABLE"] = self.cardStorageEnable
250+
self.parameters["OFFER_SAVE_CARD"] = self.offerSaveCard
251+
self.parameters["PAYER_REF"] = self.payerReference
252+
self.parameters["PMT_REF"] = self.paymentReference
253+
self.parameters["PAYER_EXIST"] = self.payerExists
254+
self.parameters["VALIDATE_CARD_ONLY"] = self.validateCardOnly
255+
self.parameters["DCC_ENABLE"] = self.dccEnable
254256

255257
if self.supplementaryData != [:] {
256258
for (key,value) in self.supplementaryData {
257-
parameters.updateValue(value, forKey:key)
259+
self.parameters.updateValue(value, forKey:key)
258260
}
259261
}
260262

261-
return parameters
263+
return self.parameters
262264
.filter { !$0.value.isEmpty }
263265
.stringFromHttpParameters()
264266
}

RXPiOS.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Pod::Spec.new do |s|
1010
s.name = "RXPiOS"
11-
s.version = "1.7.2"
11+
s.version = "1.7.3"
1212
s.summary = "The official Realex Payments iOS SDK for HPP and Remote API."
1313
s.homepage = "https://developer.realexpayments.com"
1414
s.license = 'MIT'

0 commit comments

Comments
 (0)