Beispiel #1
0
        public void WebhookEventValidateReceivedEventInvalidBodyTest()
        {
            var requestBody    = "{\"id\":\"XX-XXX266712B616591M-36507203HX6402335\",\"create_time\":\"2019-05-28T01:28:46Z\",\"resource_type\":\"sale\",\"event_type\":\"PAYMENT.SALE.COMPLETED\",\"summary\":\"Payment completed for $ 20.0 USD\",\"resource\":{\"id\":\"7DW85331GX749735N\",\"create_time\":\"2015-05-12T18:13:18Z\",\"update_time\":\"2015-05-12T18:13:36Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"payment_mode\":\"INSTANT_TRANSFER\",\"state\":\"completed\",\"protection_eligibility\":\"ELIGIBLE\",\"protection_eligibility_type\":\"ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE\",\"parent_payment\":\"PAY-1A142943SV880364LKVJEFPQ\",\"transaction_fee\":{\"value\":\"0.88\",\"currency\":\"USD\"},\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7DW85331GX749735N\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7DW85331GX749735N/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1A142943SV880364LKVJEFPQ\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]},\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-2W7266712B616591M-36507203HX6402335\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-2W7266712B616591M-36507203HX6402335/resend\",\"rel\":\"resend\",\"method\":\"POST\"}]}";
            var requestHeaders = new NameValueCollection
            {
                { "Paypal-Cert-Url", "https://api.sandbox.paypal.com/v1/notifications/certs/CERT-360caa42-fca2a594-1d93a270" },
                { "Paypal-Auth-Version", "v2" },
                { "Paypal-Transmission-Sig", "vSOIQFIZQHv8G2vpbOpD/4fSC4/MYhdHyv+AmgJyeJQq6q5avWyHIe/zL6qO5hle192HSqKbYveLoFXGJun2od2zXN3Q45VBXwdX3woXYGaNq532flAtiYin+tQ/0pNwRDsVIufCxa3a8HskaXy+YEfXNnwCSL287esD3HgOHmuAs0mYKQdbR4e8Evk8XOOQaZzGeV7GNXXz19gzzvyHbsbHmDz5VoRl9so5OoHqvnc5RtgjZfG8KA9lXh2MTPSbtdTLQb9ikKYnOGM+FasFMxk5stJisgmxaefpO9Q1qm3rCjaJ29aAOyDNr3Q7WkeN3w4bSXtFMwyRBOF28pJg9g==" },
                { "Paypal-Transmission-Id", "f0192050-80e7-11e9-a416-b554c1da3649" },
                { "Paypal-Auth-Algo", "SHA256withRSA" },
                { "Paypal-Transmission-Time", "2019-05-28T01:28:46Z" }
            };
            var webhookId    = "3RN13029J36659323";
            var apiContext   = TestingUtil.GetApiContext();
            var verification = new VerifyWebhookSignature()
            {
                auth_algo         = requestHeaders["Paypal-Auth-Algo"],
                cert_url          = requestHeaders["Paypal-Cert-Url"],
                transmission_id   = requestHeaders["Paypal-Transmission-Id"],
                transmission_sig  = requestHeaders["Paypal-Transmission-Sig"],
                transmission_time = requestHeaders["Paypal-Transmission-Time"],
                webhook_event     = JsonFormatter.ConvertFromJson <WebhookEvent>(requestBody)
            };

            Assert.Throws <PaymentsException>(() => verification.Post(apiContext));
        }
Beispiel #2
0
        public void WebhookEventValidateReceivedEventInvalidSignatureTest()
        {
            var requestBody    = "{\"id\":\"WH-2W7266712B616591M-36507203HX6402335\",\"create_time\":\"2019-05-28T01:28:46Z\",\"resource_type\":\"sale\",\"event_type\":\"PAYMENT.SALE.COMPLETED\",\"summary\":\"Payment completed for $ 20.0 USD\",\"resource\":{\"id\":\"7DW85331GX749735N\",\"create_time\":\"2015-05-12T18:13:18Z\",\"update_time\":\"2015-05-12T18:13:36Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"payment_mode\":\"INSTANT_TRANSFER\",\"state\":\"completed\",\"protection_eligibility\":\"ELIGIBLE\",\"protection_eligibility_type\":\"ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE\",\"parent_payment\":\"PAY-1A142943SV880364LKVJEFPQ\",\"transaction_fee\":{\"value\":\"0.88\",\"currency\":\"USD\"},\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7DW85331GX749735N\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7DW85331GX749735N/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1A142943SV880364LKVJEFPQ\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]},\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-2W7266712B616591M-36507203HX6402335\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-2W7266712B616591M-36507203HX6402335/resend\",\"rel\":\"resend\",\"method\":\"POST\"}]}";
            var requestHeaders = new NameValueCollection
            {
                { "Paypal-Cert-Url", "https://api.sandbox.paypal.com/v1/notifications/certs/CERT-360caa42-fca2a594-1d93a270" },
                { "Paypal-Auth-Version", "v2" },
                { "Paypal-Transmission-Sig", "GsFK/0+kl1nrj4N0x36rzx6uRNOKrlCTLSfxcPdwP+zoBlo/8w+0F9fmoSJgnDDOiJ7jK6Y3xIAt4kxxH+RLbWv0v4G1+w3Cp2UIRQ61s7KVdW6tWhZtNkxZfgQXHeL5/0XrJ43091GM1VHOuagGB5ta9FPL/MYtamTP01vNBRO6H3O0tuYNDXDPTyzDtfS3vi638/Trvtr051CFxCCcdRQjDWL1eJyCVTPDEbzAqnKjEHCkasVvxVFIDBaIy28Ee4FXd9ynwVfqwG6sRSofCgVe7VhmyVb2WSlUyHHaoh0dgjijoqDZmwvl14KMAU80kt7eRUo6jvNKzIolJLByvg==" },
                { "Paypal-Transmission-Id", "f0192050-80e7-11e9-a416-b554c1da3649" },
                { "Paypal-Auth-Algo", "SHA256withRSA" },
                { "Paypal-Transmission-Time", "2019-05-28T01:28:46Z" }
            };
            var webhookId    = "3RN13029J36659323";
            var apiContext   = TestingUtil.GetApiContext();
            var verification = new VerifyWebhookSignature()
            {
                auth_algo         = requestHeaders["Paypal-Auth-Algo"],
                cert_url          = requestHeaders["Paypal-Cert-Url"],
                transmission_id   = requestHeaders["Paypal-Transmission-Id"],
                transmission_sig  = requestHeaders["Paypal-Transmission-Sig"],
                transmission_time = requestHeaders["Paypal-Transmission-Time"],
                webhook_event     = JsonFormatter.ConvertFromJson <WebhookEvent>(requestBody)
            };

            Assert.Throws <PaymentsException>(() => verification.Post(apiContext));
        }