private bool PaddleWebhookVerify() { string[] allMyKeys = Request.Form.AllKeys; SortedDictionary <string, dynamic> padStuff = new SortedDictionary <string, dynamic>(); PhpSerializer serializer = new PhpSerializer(); byte[] signature = Convert.FromBase64String(Request.Form.GetValues("p_signature")?[0] ?? ""); // 'pad_pub_key.pem' should be a file containing only your Paddle Public Key // from Vendor Settings / Public Key, including the starting and ending lines // -----BEGIN PUBLIC KEY----- // MIICIjANBgkqhk................... // -----END PUBLIC KEY----- string publicKey = System.IO.File.ReadAllText(Server.MapPath("~/pad_pub_key.pem")); // Now fill up SortedDictionary with any properties excluding p_signature foreach (string key in allMyKeys) { var myVal = Request.Form.GetValues(key)?[0] ?? ""; if (key != "p_signature") { padStuff.Add(key, myVal); } } string payload = serializer.Serialize(padStuff); return(verifySignature(signature, payload, publicKey)); }
public async Task UpdateInstagramtoken() { var option = _repository.GetAll().FirstOrDefault(c => c.OptionName == OPTION_NAME); var serializer = new PhpSerializer(); var decoded = serializer.Deserialize(option.OptionValue) as IDictionary <object, object>; var newToken = await _tokenService.RenewToken(decoded[TOKEN_KEY_NAME].ToString()); decoded[TOKEN_KEY_NAME] = newToken.AccessToken; var newOption = new WpOptions { Autoload = option.Autoload, OptionId = option.OptionId, OptionName = option.OptionName, OptionValue = serializer.Serialize(decoded) }; _repository.Update(newOption); }
public void CanCreate() { serializer = new PhpSerializer(); Assert.NotNull(serializer); }
private static async void ConnectAsTcpClient(object iHost) { try { FBC = new System.Net.Sockets.TcpClient(); FMS32 iH = (FMS32)iHost; using (var tcpClient = new TcpClient()) { await tcpClient.ConnectAsync(FMSConfig["hostname"], int.Parse(FMSConfig["port"])); FeuerwehrCloud.Helper.Logger.WriteLine("| < [FMS32] *** Connected.. waiting for data"); using (var networkStream = tcpClient.GetStream()) { do { var buffer = new byte[4096]; var byteCount = await networkStream.ReadAsync(buffer, 0, buffer.Length); var response = Encoding.UTF8.GetString(buffer, 0, byteCount); string[] Z = response.Split(new [] { "\r\n" }, StringSplitOptions.None); foreach (var item in Z) { string[] rLine = response.Split(new [] { "\t" }, StringSplitOptions.None); if (item.StartsWith("#")) { // } else { switch (rLine [0]) { case "FMSTlg": /* * 1 = FZid * 2 = Status * 3 = Land * 4 = BOS-, Landes- und Orts-Kennung in hexadezimaler Schreibweise * 5 = die Fahrzeug-Kennung in hexadezimaler Schreibweise. * 6 = die Statusnummer in dezimaler Schreibweise (Wertebereich=0-15). * 7 = die Baustufe in dezimaler Schreibweise (Wertebereich=0-1). * 8 = die Richtung in dezimaler Schreibweise (Wertebereich=0-1) * 9 = die TKI in dezimaler Schreibweise (Wertebereich=0-4, wobei 4 für eine manuelle Statusänderung am Server steht). * 10 = Statusflag, ob das Fahrzeug ein Folgetelegramm gesendet hat. * 11 = Statusflag, ob die Leitstelle ein Folgetelegramm gesendet hat. * 12 = die Folgenummer in dezimaler Schreibweise wenn Feld 10 den Wert 1 enthält * 13 = der Text oder die Daten eines Folgetelegramms entsprechend den Werten in den Feldern 10 und 11. * 14 = die Nummer der Soundkarte vom Server, mit der das Telegramm empfangen wurde * 15 = die Nummer des Kanals der Soundkarte vom Server, mit der das Telegramm empfangen wurde */ //1|6D816111 2|6 3|13 4|6D81 5|6111 6|1 7|1 8|0 9|4 10|0 11|0 12|0 13| 14|0 15|0 string[] FMSItems = rLine [0].Split(new[] { "\t" }, StringSplitOptions.None); new System.Threading.Thread(delegate() { System.Net.WebClient WC = new WebClient(); FeuerwehrCloud.PhpSerializer s = new PhpSerializer(); WC.DownloadStringAsync(new Uri("https://www.feuerwehrcloud.de/deiva/fms.php?data=" + s.Serialize(FMSItems))); }).Start(); break; case "POC": /* * 1 = die RIC des DME in dezimaler Schreibweise. Zu beachten ist, das die RIC ohne führenden Nullen übertragen wird (Wertebereich=0–2097152) * 2 = die Funktionsnummer des DME in dezimaler Schreibweise (Wertebereich=1–4). * 3 = der Text der Alarmierung. * 4 = die Nummer der Soundkarte vom Server, mit der die Alarmierung empfangen wurde * 5 = die Nummer des Kanals der Soundkarte vom Server, mit der das Telegramm empfangen wurde */ string[] POCItems = rLine [0].Split(new[] { "\t" }, StringSplitOptions.None); break; case "ZVEI": /* * 1 = die ZVEI-Nummer des Empfängers in alphadezimaler Schreibweise. Zu beachten ist, dass die ZVEI-Nummer mit führenden Nullen übertragen wird. (Wertebereich=00000–99999). * 2 = die Nummer der Soundkarte vom Server, mit der das Telegramm empfangen wurde * 3 = die Nummer des Kanals der Soundkarte vom Server, mit der das Telegramm empfangen wurde */ string[] ZVEIItems = rLine [0].Split(new[] { "\t" }, StringSplitOptions.None); break; case "FMSALL": break; case "AN1": case "AN2": case "AN3": break; } } } } while (Disposing == false); } } //} } catch (Exception ex) { } }