Building successfull urls
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Microsoft.AspNet.Http;
|
||||
using Microsoft.AspNet.Mvc.Rendering;
|
||||
using Yavsc.Models.Drawing;
|
||||
|
||||
@ -11,5 +12,11 @@ namespace Yavsc.Helpers
|
||||
if (c==null) return new HtmlString("#000");
|
||||
return new HtmlString(String.Format("#{0:X2}{1:X2}{2:X2}", c.Red, c.Green, c.Blue));
|
||||
}
|
||||
public static string ToAbsolute(this HttpRequest request, string url)
|
||||
{
|
||||
var host = request.Host;
|
||||
var isSecure = request.Headers[Constants.SshHeaderKey]=="on";
|
||||
return (isSecure ? "https" : "http") + $"://{host}/{url}";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PayPal.Api;
|
||||
using PayPal.Exception;
|
||||
using Yavsc.Models.Billing;
|
||||
using Microsoft.AspNet.Http;
|
||||
|
||||
namespace Yavsc.Helpers
|
||||
{
|
||||
@ -18,8 +20,20 @@ namespace Yavsc.Helpers
|
||||
var apiContext = new APIContext(accessToken);
|
||||
return apiContext;
|
||||
}
|
||||
public class PaymentUrls {
|
||||
public string Details { get; set; }
|
||||
public string Cancel { get; set; }
|
||||
}
|
||||
public static PaymentUrls GetPaymentUrls(this HttpRequest request, string controllerName, string id )
|
||||
{
|
||||
var result =new PaymentUrls {
|
||||
Details = request.ToAbsolute($"{controllerName}/Details/{id}") ,
|
||||
Cancel = request.ToAbsolute($"{controllerName}/ClientCancel/{id}")
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Payment CreatePayment(this APIContext apiContext, NominativeServiceCommand query, string controllerName, string intent = "sale", ILogger logger=null)
|
||||
public static Payment CreatePayment(this HttpRequest request, string controllerName, APIContext apiContext, NominativeServiceCommand query, string intent = "sale", ILogger logger=null)
|
||||
{
|
||||
var queryType = query.GetType().Name;
|
||||
var transaction = new Transaction
|
||||
@ -28,7 +42,10 @@ namespace Yavsc.Helpers
|
||||
invoice_number = query.Id.ToString(),
|
||||
custom = query.GetType().Name + "/"+ query.Id.ToString()
|
||||
};
|
||||
transaction.order_url = Startup.Audience + "/" +controllerName + "/Details/" + query.Id;
|
||||
|
||||
var urls = request.GetPaymentUrls(controllerName, query.Id.ToString() );
|
||||
|
||||
transaction.order_url = urls.Details;
|
||||
|
||||
// transaction.item_list.shipping_address.city
|
||||
// country_code default_address id
|
||||
@ -78,8 +95,8 @@ namespace Yavsc.Helpers
|
||||
transactions = new List<Transaction> { transaction },
|
||||
redirect_urls = new RedirectUrls
|
||||
{
|
||||
return_url = Startup.Audience+ $"/{controllerName}/Details/"+query.Id.ToString(),
|
||||
cancel_url = Startup.Audience+ $"/{controllerName}/ClientCancel/"+query.Id.ToString()
|
||||
return_url = urls.Details,
|
||||
cancel_url = urls.Cancel
|
||||
}
|
||||
};
|
||||
Payment result = null;
|
||||
@ -92,8 +109,9 @@ namespace Yavsc.Helpers
|
||||
return result;
|
||||
}
|
||||
|
||||
public static Payment CreatePayment(this APIContext apiContext, Estimate estimation)
|
||||
public static Payment CreatePayment(this HttpRequest request, string controllerName, APIContext apiContext, Estimate estimation)
|
||||
{
|
||||
var urls = request.GetPaymentUrls( controllerName, estimation.Id.ToString() );
|
||||
var payment = Payment.Create(apiContext,
|
||||
new Payment
|
||||
{
|
||||
@ -137,10 +155,11 @@ namespace Yavsc.Helpers
|
||||
},
|
||||
redirect_urls = new RedirectUrls
|
||||
{
|
||||
return_url = Startup.Audience+ "/Manage/Credit/Return",
|
||||
cancel_url = Startup.Audience+ "/Manage/Credit/Cancel"
|
||||
return_url = urls.Details,
|
||||
cancel_url = urls.Cancel
|
||||
}
|
||||
});
|
||||
|
||||
return payment;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user