Нет IPN, поставленного в очередь в учетной записи песочницы, никакое сообщение не получено на контроллере .net Core SDK - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужна помощь с интеграцией PayPal.Прошел другие аналогичные вопросы по stackoverflow, но не нашел и не ответил.

Мы интегрировали PayPal, используя бета-версию SDK для .net Core .Процесс оплаты работает хорошо, мы можем создать платеж, получить ссылку для оплаты и оплатить тестовый счет покупателя.

Но после оплаты на адрес URL не отправляется сообщение IPN, указанное в учетной записи посредника, а также история IPN учетной записи посредника магазина пуста.

URL-адрес для слушателя правильный (провереноэто с почтальоном и IPN Simulator - работает как положено).Чего нам не хватает?Почему IPN не запускается после оплаты тестовым пользователем?Также не поступило денег на тестовый счет продавца, хотя оплата прошла успешно.

Код выполнения платежа ниже:

        var environment = new PayPalEnvironment(_options.ClientId, options.SecretKey, _options.BaseUrl, _options.WebUrl);
        var client = new PayPalHttpClient(environment);
        PaymentCreateRequest request = new PaymentCreateRequest();
        request.RequestBody(payment);            
        HttpResponse response = await client.Execute(request);
        Payment createdPayment = response.Result<Payment>();   
        return GetApprovalUrlFrom(createdPayment);

Код для IPN:

[HttpPost]
    [Route("Receive")]
    public IActionResult Receive()
    {
        IPNContextDTO ipnContext = new IPNContextDTO()
        {
            IPNRequest = Request
        };

        using (StreamReader reader = new StreamReader(ipnContext.IPNRequest.Body, Encoding.ASCII))
        {
            ipnContext.RequestBody = reader.ReadToEnd();
        }         
          _logger.LogInformation("IPN request body:" + ipnContext.RequestBody + "\n Recieved at " + DateTime.Now);

        _ipnService.VerifyTask(ipnContext);

        return Ok();
    }
...