我正在使用ASP.NET MVC 4,.NET Braintree Payments API和Braintree.js.
这是我为Braintree构建的一个简单的包装器:
public class PaymentBL
{
private static BraintreeGateway _braintreeGateway = new BraintreeGateway
{
Environment = Braintree.Environment.SANDBOX,
MerchantId = "xxxxxxx",
PublicKey = "xxxxxxxxxxxx",
PrivateKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
public Result<Transaction> ChargeCardOnce(decimal amount, string cardholderName, string cardNumber, string expiration,
string cvv)
{
TransactionCreditCardRequest creditCardRequest = new TransactionCreditCardRequest();
creditCardRequest.CardholderName = cardholderName;
creditCardRequest.Number = cardNumber;
creditCardRequest.ExpirationDate = expiration;
creditCardRequest.CVV = cvv;
TransactionOptionsRequest optionsRequest = new TransactionOptionsRequest();
optionsRequest.SubmitForSettlement = true;
TransactionRequest transactionRequest = new TransactionRequest();
transactionRequest.Amount = amount;
transactionRequest.CreditCard = …Run Code Online (Sandbox Code Playgroud) 我正在使用 WebApi 2.1 创建一个面向公众的 API,有一个专用的 WebApi 项目(没有 MVC),在自己的服务器上托管在 IIS 7.5 中的 API,并且设计目标是只返回 JSON 或空内容,并且从不返回 HTML。
我很高兴使用 ExceptionFilterAttribute 来处理 WebApi 管道中出现的异常,如下所示:
public class GlobalExceptionHandler : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
// Log the exception to Elmah
Elmah.Error error = new Elmah.Error(context.Exception, HttpContext.Current);
error.Detail = ActionState.GetRequestParameters(context) + error.Detail;
Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(error);
if (context.Exception is NotImplementedException)
{
context.Response = context.Request.CreateErrorResponse(
HttpStatusCode.NotImplemented
, "The API method has not yet been implemented"
);
}
else
{
context.Response = context.Request.CreateErrorResponse(
HttpStatusCode.InternalServerError
, "A …Run Code Online (Sandbox Code Playgroud)