在我的项目中,我正在配置 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;
}
}