@@ -18,12 +18,14 @@ public class BitPayClient : IBitPayClient
18
18
private readonly HttpClient _httpClient ;
19
19
private readonly string _baseUrl ;
20
20
private readonly EcKey ? _ecKey ;
21
+ private readonly string ? _platformInfo ;
21
22
22
- public BitPayClient ( HttpClient httpClient , string baseUrl , EcKey ? ecKey )
23
+ public BitPayClient ( HttpClient httpClient , string baseUrl , EcKey ? ecKey , string ? platformInfo = null )
23
24
{
24
25
this . _httpClient = httpClient ;
25
26
this . _baseUrl = baseUrl ;
26
27
this . _ecKey = ecKey ;
28
+ this . _platformInfo = platformInfo ;
27
29
}
28
30
29
31
/// <summary>
@@ -39,11 +41,9 @@ public async Task<HttpResponseMessage> Get(string uri, Dictionary<string, dynami
39
41
bool signatureRequired = true )
40
42
{
41
43
var fullUrl = _baseUrl + uri ;
42
- _httpClient . DefaultRequestHeaders . Clear ( ) ;
43
- _httpClient . DefaultRequestHeaders . Add ( "x-accept-version" , Config . BitPayApiVersion ) ;
44
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-plugin-info" , Config . BitPayPluginInfo ) ;
45
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame" , Config . BitPayApiFrame ) ;
46
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame-version" , Config . BitPayApiFrameVersion ) ;
44
+
45
+ AddDefaultHeaders ( ) ;
46
+
47
47
if ( parameters != null )
48
48
{
49
49
fullUrl += "?" ;
@@ -84,11 +84,7 @@ public async Task<HttpResponseMessage> Get(string uri, Dictionary<string, dynami
84
84
public async Task < HttpResponseMessage > Delete ( string uri , Dictionary < string , dynamic ? > ? parameters = null )
85
85
{
86
86
var fullUrl = _baseUrl + uri ;
87
- _httpClient . DefaultRequestHeaders . Clear ( ) ;
88
- _httpClient . DefaultRequestHeaders . Add ( "x-accept-version" , Config . BitPayApiVersion ) ;
89
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-plugin-info" , Config . BitPayPluginInfo ) ;
90
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame" , Config . BitPayApiFrame ) ;
91
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame-version" , Config . BitPayApiFrameVersion ) ;
87
+ AddDefaultHeaders ( ) ;
92
88
93
89
if ( parameters != null )
94
90
{
@@ -121,11 +117,7 @@ public async Task<HttpResponseMessage> Post(string uri, string json, bool signat
121
117
{
122
118
using var bodyContent = new StringContent ( UnicodeToAscii ( json ) ) ;
123
119
124
- _httpClient . DefaultRequestHeaders . Clear ( ) ;
125
- _httpClient . DefaultRequestHeaders . Add ( "x-accept-version" , Config . BitPayApiVersion ) ;
126
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-plugin-info" , Config . BitPayPluginInfo ) ;
127
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame" , Config . BitPayApiFrame ) ;
128
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame-version" , Config . BitPayApiFrameVersion ) ;
120
+ AddDefaultHeaders ( ) ;
129
121
bodyContent . Headers . ContentType = new MediaTypeHeaderValue ( "application/json" ) ;
130
122
if ( signatureRequired )
131
123
{
@@ -156,11 +148,7 @@ public async Task<HttpResponseMessage> Put(string uri, string json)
156
148
{
157
149
using var bodyContent = new StringContent ( UnicodeToAscii ( json ) ) ;
158
150
159
- _httpClient . DefaultRequestHeaders . Clear ( ) ;
160
- _httpClient . DefaultRequestHeaders . Add ( "x-accept-version" , Config . BitPayApiVersion ) ;
161
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-plugin-info" , Config . BitPayPluginInfo ) ;
162
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame" , Config . BitPayApiFrame ) ;
163
- _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame-version" , Config . BitPayApiFrameVersion ) ;
151
+ AddDefaultHeaders ( ) ;
164
152
bodyContent . Headers . ContentType = new MediaTypeHeaderValue ( "application/json" ) ;
165
153
166
154
var signature = KeyUtils . Sign ( _ecKey , _baseUrl + uri + json ) ;
@@ -193,5 +181,18 @@ private string UnicodeToAscii(string json)
193
181
Encoding . ASCII . GetChars ( asciiBytes , 0 , asciiBytes . Length , asciiChars , 0 ) ;
194
182
return new string ( asciiChars ) ;
195
183
}
184
+
185
+ private void AddDefaultHeaders ( )
186
+ {
187
+ _httpClient . DefaultRequestHeaders . Clear ( ) ;
188
+ _httpClient . DefaultRequestHeaders . Add ( "x-accept-version" , Config . BitPayApiVersion ) ;
189
+ _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-plugin-info" , Config . BitPayPluginInfo ) ;
190
+ _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame" , Config . BitPayApiFrame ) ;
191
+ _httpClient . DefaultRequestHeaders . Add ( "x-bitpay-api-frame-version" , Config . BitPayApiFrameVersion ) ;
192
+
193
+ if ( ! string . IsNullOrEmpty ( this . _platformInfo ) ) {
194
+ _httpClient . DefaultRequestHeaders . Add ( "x-bitPay-platform-info" , this . _platformInfo ) ;
195
+ }
196
+ }
196
197
}
197
- }
198
+ }
0 commit comments