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);
 }
Esempio n. 4
0
        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) {
            }
        }