@@ -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 }
0 commit comments