@@ -212,10 +212,14 @@ impl<F, T>
212
212
item : types:: ResponseRouterData < F , IatapayPaymentsResponse , T , types:: PaymentsResponseData > ,
213
213
) -> Result < Self , Self :: Error > {
214
214
let form_fields = HashMap :: new ( ) ;
215
- let id = match item. response . iata_payment_id {
215
+ let id = match item. response . iata_payment_id . clone ( ) {
216
216
Some ( s) => types:: ResponseId :: ConnectorTransactionId ( s) ,
217
217
None => types:: ResponseId :: NoResponseId ,
218
218
} ;
219
+ let connector_response_reference_id = item
220
+ . response
221
+ . merchant_payment_id
222
+ . or ( item. response . iata_payment_id ) ;
219
223
Ok ( Self {
220
224
status : enums:: AttemptStatus :: from ( item. response . status ) ,
221
225
response : item. response . checkout_methods . map_or (
@@ -225,7 +229,7 @@ impl<F, T>
225
229
mandate_reference : None ,
226
230
connector_metadata : None ,
227
231
network_txn_id : None ,
228
- connector_response_reference_id : None ,
232
+ connector_response_reference_id : connector_response_reference_id . clone ( ) ,
229
233
} ) ,
230
234
|checkout_methods| {
231
235
Ok ( types:: PaymentsResponseData :: TransactionResponse {
@@ -238,7 +242,7 @@ impl<F, T>
238
242
mandate_reference : None ,
239
243
connector_metadata : None ,
240
244
network_txn_id : None ,
241
- connector_response_reference_id : None ,
245
+ connector_response_reference_id : connector_response_reference_id . clone ( ) ,
242
246
} )
243
247
} ,
244
248
) ,
0 commit comments