aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-10-16 13:11:25 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-10-16 13:11:25 -0400
commitf5f52853060c733ecb19612fbd822688673b495e (patch)
tree10adfbfab517eca8faef1900fac0be54864e4d74 /MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
parentd577e1c7b01c45bca49cb47a1af3697f904f9e4d (diff)
parentcd42bce822453e4860430989de5b75f379c11e6b (diff)
Merge branch 'dev' of https://github.com/MediaBrowser/Emby into dev
Diffstat (limited to 'MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs')
-rw-r--r--MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs58
1 files changed, 58 insertions, 0 deletions
diff --git a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
index c2725e9bf..facaaeff9 100644
--- a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
+++ b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs
@@ -18,6 +18,7 @@ namespace MediaBrowser.Common.Implementations.Security
public class PluginSecurityManager : ISecurityManager
{
private const string MBValidateUrl = MbAdmin.HttpsUrl + "service/registration/validate";
+ private const string AppstoreRegUrl = /*MbAdmin.HttpsUrl*/ "http://mb3admin.com/test/admin/" + "service/appstore/register";
/// <summary>
/// The _is MB supporter
@@ -185,6 +186,63 @@ namespace MediaBrowser.Common.Implementations.Security
}
}
+ /// <summary>
+ /// Register an app store sale with our back-end. It will validate the transaction with the store
+ /// and then register the proper feature and then fill in the supporter key on success.
+ /// </summary>
+ /// <param name="store"></param>
+ /// <param name="application"></param>
+ /// <param name="product"></param>
+ /// <param name="feature"></param>
+ /// <param name="type"></param>
+ /// <param name="storeId"></param>
+ /// <param name="storeToken"></param>
+ /// <param name="email"></param>
+ /// <param name="amt"></param>
+ public async Task RegisterAppStoreSale(string store, string application, string product, string feature,
+ string type, string storeId, string storeToken, string email, string amt)
+ {
+ var data = new Dictionary<string, string>()
+ {
+ {"store", store},
+ {"application", application},
+ {"product", product},
+ {"feature", feature},
+ {"type", type},
+ {"storeId", storeId},
+ {"token", storeToken},
+ {"email", email},
+ {"amt", amt}
+ };
+
+ var options = new HttpRequestOptions()
+ {
+ Url = AppstoreRegUrl,
+ CancellationToken = CancellationToken.None
+ };
+ options.RequestHeaders.Add("X-Emby-Token", /*_appHost.SystemId*/ "08606E86D043");
+
+ try
+ {
+ using (var json = await _httpClient.Post(options, data).ConfigureAwait(false))
+ {
+ var reg = _jsonSerializer.DeserializeFromStream<RegRecord>(json);
+ if (!String.IsNullOrEmpty(reg.key))
+ {
+ SupporterKey = reg.key;
+ }
+ }
+
+ }
+ catch (Exception e)
+ {
+ _logger.ErrorException("Error registering appstore purchase {0}", e, _jsonSerializer.SerializeToString(data));
+ //TODO - really need to write this to a file so we can re-try it automatically
+ throw new ApplicationException("Error registering store sale");
+ }
+
+ }
+
private async Task<MBRegistrationRecord> GetRegistrationStatusInternal(string feature,
string mb2Equivalent = null,
string version = null)