我使用以下代码集成了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" 请帮帮我..
感谢,
答案 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,并将其作为现有项目添加到我的解决方案中。然后,我将该项目添加为主要项目的参考,并且对我来说效果很好。