/// <summary> /// Retrieve a profile using the profile's ID. If you want to modify a profile /// you must first retrieve it using this method. /// </summary> /// <returns>The profile.</returns> /// <param name="profileId">Profile identifier.</param> public PaymentProfile GetProfile(string profileId) { string url = BeanstreamUrls.BaseProfilesUrl .Replace("{v}", String.IsNullOrEmpty(_configuration.Version) ? "v1" : "v" + _configuration.Version) .Replace("{p}", String.IsNullOrEmpty(_configuration.Platform) ? "www" : _configuration.Platform) + "/" + profileId; HttpsWebRequest req = new HttpsWebRequest() { MerchantId = _configuration.MerchantId, Passcode = _configuration.ProfilesApiPasscode, WebCommandExecutor = _webCommandExecuter }; string response = req.ProcessTransaction(HttpMethod.Get, url); PaymentProfile profile = JsonConvert.DeserializeObject <PaymentProfile>(response); profile.Id = profileId; return(profile); }
/// <summary> /// Updates the profile. You must first retrieve the profile using ProfilesAPI.GetProfile(id) /// </summary> /// <returns>The profile response.</returns> /// <param name="profile">Profile.</param> public ProfileResponse UpdateProfile(PaymentProfile profile) { var url = BeanstreamUrls.ProfileUrl .Replace("{v}", string.IsNullOrEmpty(_configuration.Version) ? "v1" : "v" + _configuration.Version) .Replace("{p}", string.IsNullOrEmpty(_configuration.Platform) ? "www" : _configuration.Platform) .Replace("{pid}", profile.Id); var req = CreateWebRequest(); var updateProfile = new { billing = profile.Billing, custom = profile.CustomFields, language = profile.Language, comment = profile.Comment }; var response = req.ProcessTransaction(HttpMethod.Put, url, updateProfile); return(JsonConvert.DeserializeObject <ProfileResponse>(response)); }
/// <summary> /// Updates the profile. You must first retrieve the profile using ProfilesAPI.GetProfile(id) /// </summary> /// <returns>The profile response.</returns> /// <param name="profile">Profile.</param> public ProfileResponse UpdateProfile(PaymentProfile profile) { string url = BeanstreamUrls.BaseProfilesUrl .Replace("{v}", String.IsNullOrEmpty(_configuration.Version) ? "v1" : "v"+_configuration.Version) .Replace("{p}", String.IsNullOrEmpty(_configuration.Platform) ? "www" : _configuration.Platform) +"/"+profile.Id; HttpsWebRequest req = new HttpsWebRequest () { MerchantId = _configuration.MerchantId, Passcode = _configuration.ProfilesApiPasscode, WebCommandExecutor = _webCommandExecuter }; var updateProfile = new { billing = profile.Billing, custom = profile.CustomFields, language = profile.Language, comment = profile.Comment }; string response = req.ProcessTransaction (HttpMethod.Put, url, updateProfile); return JsonConvert.DeserializeObject<ProfileResponse>(response); }