/// <summary> /// Post process payment (used by payment gateways that require redirecting to a third-party URL) /// </summary> /// <param name="postProcessPaymentRequest">Payment info required for an order processing</param> public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest) { //create common query parameters for the request var queryParameters = CreateQueryParameters(postProcessPaymentRequest); string jsonString = JsonConvert.SerializeObject(queryParameters); var url = GetPointCheckoutBaseUrl() + "/api/v1.0/checkout"; HttpClient pointCheckoutClient = getPointcheckoutHttpClient(url); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url) { Content = new StringContent(jsonString, Encoding.UTF8, "application/json") }; try { pointCheckoutClient.CancelPendingRequests(); HttpResponseMessage response = pointCheckoutClient.SendAsync(request).Result; string responseString = response.Content.ReadAsStringAsync().Result; PointCheckoutResponse responseObject = JsonConvert.DeserializeObject <PointCheckoutResponse>(responseString); if (responseObject.success) { string redirectUrl = GetPointCheckoutBaseUrl() + "/checkout/" + responseObject.result.checkoutKey; var order = _orderService.GetOrderById(int.Parse(responseObject.result.referenceId)); //add a note order.OrderNotes.Add(new OrderNote() { Note = getOrderHistoryCommentMessage(responseObject.result.checkoutId, responseObject.result.status, responseObject.result.currency, 0), DisplayToCustomer = false, CreatedOnUtc = DateTime.UtcNow }); _orderService.UpdateOrder(order); _httpContextAccessor.HttpContext.Response.Redirect(redirectUrl); return; } else { throw new NopException("ERROR: " + responseObject.error); } }catch (Exception ex) { ex.GetBaseException(); _httpContextAccessor.HttpContext.Response.Redirect(_webHelper.GetStoreLocation()); } }
/// <summary> /// checkPayment (check if payment is success and paid ) /// </summary> /// <param name="checkout">checkout id provided by pointcheckout redirect call </param> public PointCheckoutResponse CheckPayment(string checkout) { //create common query parameters for the request var url = GetPointCheckoutBaseUrl() + "/api/v1.0/checkout/" + checkout; HttpClient pointCheckoutClient = getPointcheckoutHttpClient(url); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url); try { pointCheckoutClient.CancelPendingRequests(); HttpResponseMessage response = pointCheckoutClient.SendAsync(request).Result; response.EnsureSuccessStatusCode(); string responseString = response.Content.ReadAsStringAsync().Result; PointCheckoutResponse responseObject = JsonConvert.DeserializeObject <PointCheckoutResponse>(responseString); return(responseObject); } catch (Exception ex) { ex.GetBaseException(); return(null); } }