我有以下付款代码。
var service = new StripeChargeService(newgenSecretKey);
try
{
var result = service.Create(newCharge);
if (result.Paid)
{
lab.Text = "It worked";
CartOrders.UpdateTransactionID(result.Id, OrderID, "Express Checkout");
Response.Redirect("PgeCustSuccess.aspx?OrderID=" + OrderID);
}
}
catch (StripeException stripeException)
{
Debug.WriteLine(stripeException.Message);
stripe.Text = stripeException.Message;
//CartOrders.UpdateTransactionID(result.FailureMessage, OrderID, "Express Checkout");
}
我想在catch块中记录注释掉的值(result.FailureMessage)。我试图捕获Stripe Errors,如果抛出并将其记录到我的数据库中。我面临的问题是我无法获得结果.FailureMessage在catch块中工作。我知道无法声明全局变量,只能在本地使用。
以下是我尝试的一些事情。
在try块之外声明了结果,但没有成功,因为var应该用类型初始化,并且类型为条带
var service = new StripeChargeService(newgenSecretKey);
var result = new { };
try
{
//did not work
result = service.Create(newCharge);
if (result.Paid)
{
任何想法?
答案 0 :(得分:0)
你可以这样做:
var service = new StripeChargeService(newgenSecretKey);
Stripe result;
try
{
result = service.Create(newCharge);
if (result.Paid)
{
答案 1 :(得分:0)
尝试将结果从try中移出,或者:
var service = new StripeChargeService(newgenSecretKey);
var result;
try
{
result = service.Create(newCharge);
if (result.Paid)
{
lab.Text = "It worked";
CartOrders.UpdateTransactionID(result.Id, OrderID, "Express Checkout");
Response.Redirect("PgeCustSuccess.aspx?OrderID=" + OrderID);
}
}
catch (StripeException stripeException)
{
Debug.WriteLine(stripeException.Message);
stripe.Text = stripeException.Message;
//CartOrders.UpdateTransactionID(result.FailureMessage, OrderID, "Express Checkout");
}
请注意,如果从未填充结果,则result.FailureMessage可能会抛出异常;你可以使用if语句或try-catch来防止这种情况发生。