public PaymentController( IPaymentsApi paymentsApi, CheckoutRepository checkoutRepository, PaymentRepository paymentRepository, IamportHttpClientOptions clientOptions) { if (paymentsApi == null) { throw new ArgumentNullException(nameof(paymentsApi)); } if (checkoutRepository == null) { throw new ArgumentNullException(nameof(checkoutRepository)); } if (paymentRepository == null) { throw new ArgumentNullException(nameof(paymentRepository)); } if (clientOptions == null) { throw new ArgumentNullException(nameof(clientOptions)); } this.paymentsApi = paymentsApi; this.checkoutRepository = checkoutRepository; this.paymentRepository = paymentRepository; iamportId = clientOptions.IamportId; }
/// <summary> /// ConfigurationManager에서 아임포트 설정을 반환합니다. /// </summary> /// <returns>아임포트 설정</returns> private static IamportHttpClientOptions GetHttpClientOptions() { var apiKey = ConfigurationManager.AppSettings["iamport:ApiKey"]; var apiSecret = ConfigurationManager.AppSettings["iamport:ApiSecret"]; var iamportId = ConfigurationManager.AppSettings["iamport:IamportId"]; var baseUrl = ConfigurationManager.AppSettings["iamport:BaseUrl"]; var authorizationHeaderName = ConfigurationManager.AppSettings["iamport:AuthorizationHeaderName"]; var options = new IamportHttpClientOptions(); if (!string.IsNullOrEmpty(apiKey)) { options.ApiKey = apiKey; } if (!string.IsNullOrEmpty(apiSecret)) { options.ApiSecret = apiSecret; } if (!string.IsNullOrEmpty(iamportId)) { options.IamportId = iamportId; } if (!string.IsNullOrEmpty(baseUrl)) { options.BaseUrl = baseUrl; } if (!string.IsNullOrEmpty(authorizationHeaderName)) { options.AuthorizationHeaderName = authorizationHeaderName; } return options; }
public CheckoutController( CheckoutRepository checkoutRepository, IamportHttpClientOptions clientOptions) { if (checkoutRepository == null) { throw new ArgumentNullException(nameof(checkoutRepository)); } if (clientOptions == null) { throw new ArgumentNullException(nameof(clientOptions)); } this.checkoutRepository = checkoutRepository; this.clientOptions = clientOptions; }
/// <summary> /// 주어진 옵션과 HttpClient로 인스턴스를 초기화합니다. /// </summary> /// <param name="options">아임포트 클라이언트의 옵션</param> /// <param name="httpClient">HTTP 클라이언트의 인스턴스</param> public IamportHttpClient(IamportHttpClientOptions options, HttpClient httpClient) { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (httpClient == null) { throw new ArgumentNullException(nameof(httpClient)); } options.Validate(); this.options = options; httpClient.BaseAddress = new Uri(options.BaseUrl, UriKind.Absolute); this.httpClient = httpClient; }
/// <summary> /// 주어진 옵션으로 인스턴스를 초기화합니다. /// </summary> /// <param name="options">아임포트 클라이언트의 옵션.</param> public IamportHttpClient(IamportHttpClientOptions options) : this(options, GetDefaultHttpClient()) { }