Ошибка создания подписки NMI с ошибкой аутентификации

В моем проекте я настраиваю платежный шлюз NMI, в котором я создаю план, а затем клиент и теперь создаю подписку на этот план, но клиент дает ответ «Ошибка аутентификации». Ниже приведен ответ клиента. =&orderid=&type=&response_code=300 Ниже мой сервисный код

      var addsubscription = "add_subscription";
            var date = DateTime.UtcNow;
            var year = date.Year.ToString();                
            var month = date.Month.ToString();
            var padedmonth = month.PadLeft(2, '0');
            var day = date.Day.ToString();
            var padedday = day.PadLeft(2, '0');
            var startdate = year + padedmonth + padedday;
   
            string option = $"plan_id={model.Data.StripePlanId}&recurring={addsubscription}&payment_token={model.Data.StripePaymentToken}&ccnumber={model.Data.CCNumber}&ccexp={model.Data.CCExpiry}&start_date={startdate}";

            var requester = new NMIGatewayRequester();
            var relativeUrl = "https://secure.networkmerchants.com/api/transact.php";

            var response = requester.Request(relativeUrl, RestSharp.Method.POST, option);                
            var customerResponseObj = GetPaymentApiResponseValues(response.Split('&').Select(x => x.Split('=')).ToDictionary(x => x[0], x => x[1]));

public class NMIGatewayRequester
{
    private RestClient client;
    public string Request(string relativeUrl, RestSharp.Method verb, string option)
    {
        client = new RestSharp.RestClient($"{relativeUrl}") { Timeout = -1 };
        var request = new RestRequest(verb);
        request.AddParameter("application/x-www-form-urlencoded", option, ParameterType.RequestBody);
        var subResponse = client.Execute(request);
        if (!subResponse.IsSuccessful)
        {
            throw new Exception("Unable to Process Request");
        }

        return subResponse.Content;
    }
}

1 ответ

Вам нужно включить ключ безопасности в ваши параметры:

      string option = $"security_key=[...]&plan_id={model.Data.StripePlanId}&[...]";

Смотрите документацию здесь .

Другие вопросы по тегам