/** * @return bool */ public bool isParametersValid() { int errorsNumber = 0; List <string> requiredParams = new List <string>(); if (Paymentwall_Pingback.getApiType() == Paymentwall_Pingback.API_VC) { requiredParams.AddRange(new string[] { "uid", "currency", "type", "ref", "sig" }); } else if (Paymentwall_Pingback.getApiType() == Paymentwall_Pingback.API_GOODS) { requiredParams.AddRange(new string[] { "uid", "goodsid", "type", "ref", "sig" }); } else { //API_CART requiredParams.AddRange(new string[] { "uid", "goodsid[0]", "type", "ref", "sig" }); } foreach (string field in requiredParams) { if (!this.parameters.ContainsKey(field) || String.IsNullOrWhiteSpace(this.parameters[field])) { this.appendToErrors("Parameter " + field + " is missing"); errorsNumber++; } } return(errorsNumber == 0); }
/** * @return bool */ public bool isSignatureValid() { string signature = ""; Dictionary <string, string> signatureParamsToSign = new Dictionary <string, string>(); if (this.parameters.ContainsKey("sig")) { signature = this.parameters["sig"]; } else { signature = null; } List <string> signatureParams = new List <string>(); if (Paymentwall_Pingback.getApiType() == Paymentwall_Pingback.API_VC) { signatureParams.AddRange(new string[] { "uid", "currency", "type", "ref" }); } else if (Paymentwall_Pingback.getApiType() == Paymentwall_Pingback.API_GOODS) { signatureParams.AddRange(new string[] { "uid", "goodsid", "slength", "speriod", "type", "ref" }); } else { //API_CART signatureParams.AddRange(new string[] { "uid", "goodsid", "type", "ref" }); this.parameters["sign_version"] = Paymentwall_Pingback.SIGNATURE_VERSION_2.ToString(); } if (!this.parameters.ContainsKey("sign_version")) //Check if signature version 1 { foreach (string field in signatureParams) { if (this.parameters[field] != null) { signatureParamsToSign.Add(field, this.parameters[field]); } else { signatureParamsToSign.Add(field, null); } } this.parameters["sign_version"] = Paymentwall_Pingback.SIGNATURE_VERSION_1.ToString(); } else { signatureParamsToSign = this.parameters; } string signatureCalculated = this.calculateSignature(signatureParamsToSign, Paymentwall_Pingback.getSecretKey(), Convert.ToInt32(this.parameters["sign_version"])); return(signatureCalculated == signature); }