5
5
6
6
class CryptAPI {
7
7
private static $ base_url = "https://api.cryptapi.io " ;
8
+ private static $ pro_url = "https://pro-api.cryptapi.io " ;
8
9
private $ valid_coins = [];
9
10
private $ own_address = null ;
10
11
private $ payment_address = null ;
11
12
private $ callback_url = null ;
12
13
private $ coin = null ;
13
14
private $ ca_params = [];
14
15
private $ parameters = [];
16
+ private $ api_key = null ;
15
17
16
18
public static $ COIN_MULTIPLIERS = [
17
19
'btc ' => 10 **8 ,
@@ -23,7 +25,7 @@ class CryptAPI {
23
25
'trx ' => 10 **6 ,
24
26
];
25
27
26
- public function __construct ($ coin , $ own_address , $ callback_url , $ parameters =[], $ ca_params =[]) {
28
+ public function __construct ($ coin , $ own_address , $ callback_url , $ parameters =[], $ ca_params =[], $ api_key = null ) {
27
29
$ this ->valid_coins = CryptAPI::get_supported_coins ();
28
30
29
31
if (!in_array ($ coin , $ this ->valid_coins )) {
@@ -36,6 +38,7 @@ public function __construct($coin, $own_address, $callback_url, $parameters=[],
36
38
$ this ->coin = $ coin ;
37
39
$ this ->ca_params = $ ca_params ;
38
40
$ this ->parameters = $ parameters ;
41
+ $ this ->api_key = $ api_key ;
39
42
}
40
43
41
44
public static function get_supported_coins () {
@@ -68,21 +71,31 @@ public static function get_supported_coins() {
68
71
public function get_address () {
69
72
if (empty ($ this ->own_address ) || empty ($ this ->coin ) || empty ($ this ->callback_url )) return null ;
70
73
74
+ $ api_key = $ this ->api_key ;
75
+
71
76
$ callback_url = $ this ->callback_url ;
72
77
if (!empty ($ this ->parameters )) {
73
78
$ req_parameters = http_build_query ($ this ->parameters );
74
79
$ callback_url = "{$ this ->callback_url }? {$ req_parameters }" ;
75
80
}
76
81
77
- $ ca_params = array_merge ([
78
- 'callback ' => $ callback_url ,
79
- 'address ' => $ this ->own_address ,
80
- ], $ this ->ca_params );
82
+ if (empty ($ api_key )) {
83
+ $ ca_params = array_merge ([
84
+ 'callback ' => $ callback_url ,
85
+ 'address ' => $ this ->own_address ,
86
+ ], $ this ->ca_params );
87
+ } else {
88
+ $ ca_params = array_merge ([
89
+ 'apikey ' => $ api_key ,
90
+ 'callback ' => $ callback_url ,
91
+ 'address ' => $ this ->own_address ,
92
+ ], $ this ->ca_params );
93
+ }
81
94
82
95
$ response = CryptAPI::_request ($ this ->coin , 'create ' , $ ca_params );
83
96
84
97
if ($ response ->status == 'success ' ) {
85
- assert ($ response ->address_out == $ this ->own_address , 'Output address mismatch ' );
98
+ // assert($response->address_out == $this->own_address, 'Output address mismatch');
86
99
$ this ->payment_address = $ response ->address_in ;
87
100
return $ response ->address_in ;
88
101
}
@@ -200,6 +213,10 @@ private static function _request($coin, $endpoint, $params = [], $assoc = false)
200
213
$ base_url = Cryptapi::$ base_url ;
201
214
$ coin = str_replace ('_ ' , '/ ' , $ coin );
202
215
216
+ if (!empty ($ params ['apikey ' ]) && $ endpoint !== 'info ' ) {
217
+ $ base_url = CryptAPI::$ pro_url ;
218
+ }
219
+
203
220
if (!empty ($ params )) $ data = http_build_query ($ params );
204
221
205
222
if (!empty ($ coin )) {
0 commit comments