diff options
| author | Eric Reed <ebr@mediabrowser3.com> | 2015-10-16 10:29:02 -0400 |
|---|---|---|
| committer | Eric Reed <ebr@mediabrowser3.com> | 2015-10-16 10:29:02 -0400 |
| commit | 0ed2fed529102eaf4b644c65aaa28ef9edcdf89b (patch) | |
| tree | 64d80b39d2bf8b2f2ce7fb819ce8ff5912bc1608 /MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs | |
| parent | 3741eb24263de151a57e66dd6770fc82f69fe9c4 (diff) | |
Restore appstore registration end point
Diffstat (limited to 'MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs')
| -rw-r--r-- | MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs b/MediaBrowser.Common.Implementations/Security/PluginSecurityManager.cs index c2725e9bf..861d638f2 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,66 @@ 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> + /// <returns>true if successful</returns> + public async Task<Boolean> 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; + } + + return true; + } + + } + 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 + return false; + } + + } + private async Task<MBRegistrationRecord> GetRegistrationStatusInternal(string feature, string mb2Equivalent = null, string version = null) |
