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);
            }
        }
Пример #2
0
        static ThreeDSAuthorization1Request BuildThreeDSAuthorize1()
        {
            var test = new ThreeDSAuthorization1Request();

            test.OperatorID         = "Operator id";
            test.ThreeDSMtdComplInd = "N";
            test.ThreeDSTransId     = "aded56a0-177d-40e3-b7a1-2d95251279cf";
            return(test);
        }
Пример #3
0
        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);
        }