对Stripe的Restsharp请求给出SendFailure错误

时间:2016-06-16 10:29:22

标签: c# stripe-payments restsharp

我尝试使用RestSharpStripe API发送请求。我构建了我的请求,但由于身份验证错误而无法发送。请求返回0错误代码。

这是我的代码:

    var client = new RestClient("https://api.stripe.com");
    client.Authenticator = new HttpBasicAuthenticator (stripe_key, "");

    var request = new RestRequest("v1/tokens", Method.POST);
    request.AddParameter("card[number]", card.number);
    request.AddParameter("card[exp_month]", card.expMonth);
    request.AddParameter("card[exp_year]", card.expYear);
    request.AddParameter("card[cvc]", card.cvc);

    IRestResponse response = client.Execute(request);

    Log.trace ("Content : " + response.Content);
    Log.trace ("Status code : " + response.StatusCode.ToString ());
    Log.trace ("Error message : " + response.ErrorMessage);

我的输出:

Content : 
Status code : 0
Error message : Error getting response stream (Write: The authentication or decryption has failed.): SendFailure

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,我使用Unity 5.3,它使用.NET 2.0。这个版本的.NET似乎很难验证SSL证书。这个问题禁止SSL连接,这就是为什么我有一个" 0"回应状态。要覆盖此验证,我这样做了:

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);

public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
    return true;
}

所有证书都将被验证,所以要小心......在我的情况下,我与Stripe API沟通,所以在我看来它没关系! ;)