I'm using asp.net mvc 4
and 2Checkout
to make an online transaction system. I'm using 2Checkout sandbox account to test the system and following their tutorial for testing. For some reason, I'm getting this error,
Value cannot be null. Parameter name: s
Here are my codes,
Controller
public ActionResult CheckOut()
{
return View();
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Process()
{
TwoCheckoutConfig.SellerID = "901299852";
TwoCheckoutConfig.PrivateKey = "9E1A8B89-2A90-40D7-A7F5-CBF252B3B4A0";
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";
Billing.phoneNumber = "5555555555";
Billing.phoneExt = "555";
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); // Error getting in this line
ViewBag.Message = result.responseMsg;
}
catch (TwoCheckoutException e)
{
ViewBag.Message = e.Message.ToString();
}
return View();
}
View (CheckOut)
<div class="container well">
@using (Html.BeginForm("Process", "Home", FormMethod.Post, new { id = "myCCForm" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "Error! Please provide valid information!")
<input id="token" name="token" type="hidden" value="">
<div>
<label>
<span>Card Number</span>
</label>
<input id="ccNo" type="text" size="20" value="" autocomplete="off" required />
</div>
<div>
<label>
<span>Expiration Date (MM/YYYY)</span>
</label>
<input type="text" size="2" id="expMonth" required />
<span>/ </span>
<input type="text" size="2" id="expYear" required />
</div>
<div>
<label>
<span>CVC</span>
</label>
<input id="cvv" size="4" type="text" value="" autocomplete="off" required />
</div>
<input type="submit" value="Submit Payment">
}
</div>
<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script src="https://www.2checkout.com/checkout/api/2co.min.js"></script>
<script>
// Called when token created successfully.
var successCallback = function(data) {
var myForm = document.getElementById('myCCForm');
// Set the token as the value for the token input
myForm.token.value = data.response.token.token;
// IMPORTANT: Here we call `submit()` on the form element directly instead of using jQuery to prevent and infinite token request loop.
myForm.submit();
};
// Called when token creation fails.
var errorCallback = function(data) {
if (data.errorCode === 200) {tokenRequest();} else {alert(data.errorMsg);}
};
var tokenRequest = function() {
// Setup token request arguments
var args = {
sellerId: "901299852",
publishableKey: "F4AA3A98-B605-423E-ACAC-D70BCB50A7F7",
ccNo: $("#ccNo").val(),
cvv: $("#cvv").val(),
expMonth: $("#expMonth").val(),
expYear: $("#expYear").val()
};
// Make the token request
TCO.requestToken(successCallback, errorCallback, args);
};
$(function() {
// Pull in the public encryption key for our environment
TCO.loadPubKey('sandbox');
$("#myCCForm").submit(function(e) {
// Call our token request function
tokenRequest();
// Prevent form from submitting
return false;
});
});
</script>
View (Process)
<div class="container well">
<h3 class="text-center">@ViewBag.Message</h3>
</div>
Anyone knows why I'm getting this error? How can I resolve it? Need this help badly! Thanks.