"值不能为空。参数名称:s" 2Checkout支付API

时间:2017-10-05 09:06:31

标签: asp.net asp.net-mvc 2checkout

我使用以下代码集成了2Checkout Payment API,但在授权客户时出错。

关注:https://www.2checkout.com/documentation/libraries-net-tutorial

代码:

 public ActionResult Process()
 {
       TwoCheckoutConfig.SellerID = "801785575";
       TwoCheckoutConfig.PrivateKey = "SA7947DS-CWE1-1233-4EE-33331DA607B6";
       TwoCheckoutConfig.Sandbox = true;

       try
       {
          var Billing = new AuthBillingAddress();
          Billing.addrLine1 = "123 test st";
          Billing.city = "Columbus";
          Billing.zipCode = "43123";
          Billing.state = "OH";
          Billing.country = "USA";
          Billing.name = "Testing Tester";
          Billing.email = "example@2co.com";

          var Customer = new ChargeAuthorizeServiceOptions();
          Customer.total = (decimal)1.00;
          Customer.currency = "USD";
          Customer.merchantOrderId = "123";
          Customer.billingAddr = Billing;
          Customer.token = Request["token"];

          var Charge = new ChargeService();

          var result = Charge.Authorize(Customer);
          Console.Write(result);
       }
       catch (TwoCheckoutException e)
       {
          Console.Write(e);
       }

       return View();
}  

收到错误"值不能为空。参数名称:s" 请帮帮我..

感谢,

2 个答案:

答案 0 :(得分:0)

从错误再现时得到的堆栈跟踪中,异常似乎来自System.IO.StringReader(String s)构造函数,因为某些操作将构造函数参数作为空字符串值传递,表明您使用的是TwoCheckOut版本DLL程序集可能有StringReader的bug,它需要非空值(它属于TwoCheckOut程序集)。

尝试通过发出程序包管理器命令来更新TwoCheckOut程序集:

Update-Package TwoCheckout

如果更新过程不成功或更新后仍出现异常,请使用以下命令删除相应的包:

Uninstall-Package TwoCheckout

然后从this source下载最新的TwoCheckOut DLL程序集,并将其添加到项目的References部分。

类似问题:

Value cannot be null. Parameter name: s, 2Chekout sandbox error

TwoCheckout System.ArgumentNullException : Value cannot be null Parameter name: s

答案 1 :(得分:0)

我下载了TwoCheckout source code,并将其作为现有项目添加到我的解决方案中。然后,我将该项目添加为主要项目的参考,并且对我来说效果很好。