1

在我的项目中,我正在配置 NMI 支付网关,在该网关中我创建了一个计划,然后是客户,现在针对该计划创建订阅,但客户端给出的 Authentication Failed 响应如下是客户端 response=3&responsetext=Authentication Failed&authcode=&transactionid=0&avsresponse=&cvvresponse 的响应=&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;
    }
}
4

0 回答 0