public static void ValidateThreeDSAuthorize1Request(ThreeDSAuthorization1Request request) { List <string> fields = new List <string>(); if (request.OperatorID == null || !Regex.IsMatch(request.OperatorID, PARAMETERS.OPERATORID.PATTERN)) { fields.Add(PARAMETERS.OPERATORID.NAME); } if (request.ThreeDSMtdComplInd == null || !Regex.IsMatch(request.ThreeDSMtdComplInd, PARAMETERS.THREEDSMTDCOMPLIND.PATTERN)) { fields.Add(PARAMETERS.THREEDSMTDCOMPLIND.NAME); } if (request.ThreeDSTransId == null) { fields.Add(PARAMETERS.THREEDSTRANSID.NAME); } if (fields.Count > 0) { string message = ""; foreach (string field in fields) { message = message + " " + field; } throw new VPOSClientException("Invalid Request! The following field/s are not valid or missing:" + message); } }
static ThreeDSAuthorization1Request BuildThreeDSAuthorize1() { var test = new ThreeDSAuthorization1Request(); test.OperatorID = "Operator id"; test.ThreeDSMtdComplInd = "N"; test.ThreeDSTransId = "aded56a0-177d-40e3-b7a1-2d95251279cf"; return(test); }
public ThreeDSAuthorization1Response ThreeDSAuthorize1(ThreeDSAuthorization1Request request) { // Validate request RequestValidator.ValidateThreeDSAuthorize1Request(request); // Map input request in the XML Request var requestXML = RequestMapper.MapThreeDSAuthorization1Request(request, _shopId); // Calculate and set MAC requestXML.Request.MAC = _encoder.GetMac(RequestHandler.GetMacDictionary(requestXML), _apiResultKey); var xmlBody = XmlTool.Serialize(requestXML); // Do call to VPOS var xmlResponse = _restClient.CallApi(_urlAPI, xmlBody); // Map response var objectResponse = XmlTool.Deserialize <BPWXmlResponse <Data3DSResponse> >(xmlResponse); // Verify Mac Response VerifyMacResponse(objectResponse); VerifyAuthorization(objectResponse.Data.Authorization); VerifyPanAliasData(objectResponse.Data.PanAliasData); VerifyThreeDSChallenge(objectResponse.Data.ThreeDSChallenge); return(ResponseMapper.MapThreeDSAuthorization1(objectResponse)); }
public static BPWXmlRequest <ThreeDSAuthorization1RequestXML> MapThreeDSAuthorization1Request(ThreeDSAuthorization1Request request, string shopId) { var requestData = new ThreeDSAuthorization1RequestXML { ThreeDSMtdComplInd = request.ThreeDSMtdComplInd, ThreeDSTransId = request.ThreeDSTransId }; var requestXML = new BPWXmlRequest <ThreeDSAuthorization1RequestXML>(requestData); requestXML.SetHeaderInfo(shopId, request.OperatorID); return(requestXML); }