f试ssefahahå�¯èƒ½å�¡å�¡å�¡é©¬å�¡å�¡è®¡ç®—机视觉事实上事实上飒飒飒gjâ—�â—�â—�â—�hfkttkgdgkmcuocucocucocé¡¶é¡¶é¡¶é¡¶é¡¶é¡¶é¡¶é¡¶é¡¶é¡¶é¡¶é¡¶uco朵朵å�¯å�¯æ”¾2å·�峨2555555666369🌹 �����ѩ�����һ����dddf2qevf2fv69666 ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!PK3CW]&¹pμ&¼& README.mdnu„[µü¤# Cryptomus PHP SDK PHP SDK module for working with the Cryptomus API ## Installation and connection Installation using [composer](https://getcomposer.org/download/): ```bash $ composer require cryptomus/api-php-sdk ``` ## Documentation **Methods for working with api**: https://doc.cryptomus.com/
## Authorization `PAYOUT_KEY` or `PAYMENT_KEY`, also `MERCHANT_UUID` required to use SDK details in [documentation](https://doc.cryptomus.com/general/request). ```php ``` ```php ``` ## Payout methods ### Payout request ```php '15', 'currency' => 'USD', 'network' => 'TRON', 'order_id' => '555321', 'address' => 'TXguLRFtrAFrEDA17WuPfrxB84jVzJcNNV', 'is_subtract' => '1' 'url_callback' => 'https://example.com/callback' ]; $result = $payout->create($data); ?> ``` Output: ``` array(9) { ["uuid"]=> string(36) "a7c0caec-a594-4aaa-b1c4-77d511857594" ["amount"]=> string(1) "3" ["currency"]=> string(3) "TRX" ["network"]=> string(4) "tron" ["address"]=> string(5) "TJ..." ["txid"]=> NULL ["status"]=> string(7) "process" ["is_final"]=> bool(false) ["balance"]=> int(129) } ``` ### Info ```php "a7c0caec-a594-4aaa-b1c4-77d511857594"]; // or $data = ["order_id" => "12345"]; $result = $payout->info($data); ?> ``` Output: ``` array(9) { ["uuid"]=> string(36) "a7c0caec-a594-4aaa-b1c4-77d511857594" ["amount"]=> string(10) "3.00000000" ["currency"]=> string(3) "TRX" ["network"]=> string(4) "tron" ["address"]=> string(6) "TJZ..." ["txid"]=> NULL ["status"]=> string(7) "process" ["is_final"]=> bool(false) ["balance"]=> string(12) "129.00000000" } ``` ## Payment methods ### Payment services ```php services(); ?> ``` Output: ``` array(1) { [0]=> array(5) { ["network"]=> string(4) "TRON" ["currency"]=> string(3) "TRX" ["is_available"]=> bool(true) ["limit"]=> array(2) { ["min_amount"]=> string(10) "1.00000000" ["max_amount"]=> string(11) "10.00000000" } ["commission"]=> array(2) { ["fee_amount"]=> string(4) "0.00" ["percent"]=> string(4) "0.00" } } } ``` ### Payment create ```php '16', 'currency' => 'USD', 'network' => 'ETH', 'order_id' => '555123', 'url_return' => 'https://example.com/return', 'url_callback' => 'https://example.com/callback', 'is_payment_multiple' => false, 'lifetime' => '7200' 'to_currency' => 'ETH' ]; $result = $payment->create($data); ?> ``` Output: ``` array(14) { ["uuid"]=> string(36) "8b03432e-385b-4670-8d06-064591096795" ["amount"]=> string(2) "16" ["order_id"]=> string(7) "test_19" ["currency"]=> string(3) "TRX" ["comments"]=> NULL ["network"]=> string(4) "tron" ["address"]=> string(5) "TW..." ["from"]=> NULL ["txid"]=> NULL ["payment_status"]=> string(5) "check" ["url"]=> string(66) "https://pay.cryptomus.com/pay/8b03432e-385b-4670-8d06-064591096795" ["expired_at"]=> int(1650980953) ["status"]=> string(5) "check" ["is_final"]=> bool(false) } ``` ### Info ```php "a7c0caec-a594-4aaa-b1c4-77d511857594"]; // or $data = ["order_id" => "12345"]; $result = $payment->info($data); ?> ``` Output: ``` array(15) { ["uuid"]=> string(36) "8b03432e-385b-4670-8d06-064591096795" ["order_id"]=> string(7) "test_10" ["amount"]=> string(11) "16.00000000" ["payment_amount"]=> string(8) "0.000000" ["currency"]=> string(3) "TRX" ["comments"]=> NULL ["network"]=> string(4) "tron" ["address"]=> string(5) "TW..." ["from"]=> NULL ["txid"]=> NULL ["payment_status"]=> string(5) "check" ["url"]=> string(66) "https://pay.cryptomus.com/pay/8b03432e-385b-4670-8d06-064591096795" ["expired_at"]=> int(1650980953) ["status"]=> string(4) "paid" ["is_final"]=> bool(true) } ``` ### Payment History ```php history($page); ?> ``` Output: ``` array(2) { ["items"]=> array(1) { [0]=> array(15) { ["uuid"]=> string(36) "87094a43-5fe4-4629-b2fd-c37e8e2af76c" ["order_id"]=> string(10) "1650956609" ["amount"]=> string(11) "16.00000000" ["payment_amount"]=> string(10) "0.01200000" ["currency"]=> string(3) "ETH" ["comments"]=> NULL ["network"]=> string(3) "eth" ["address"]=> string(5) "0x..." ["from"]=> string(6) "0x4..." ["txid"]=> NULL ["payment_status"]=> string(4) "paid" ["url"]=> string(66) "https://pay.cryptomus.com/pay/87094a43-5fe4-4629-b2fd-c37e8e2af76c" ["expired_at"]=> int(1650960209) ["status"]=> string(4) "paid" ["is_final"]=> bool(true) } } ["paginate"]=> array(5) { ["count"]=> int(2) ["hasPages"]=> bool(false) ["nextCursor"]=> NULL ["previousCursor"]=> NULL ["perPage"]=> int(15) } } ``` ### Balance ```php balance(); ?> ``` Output: ``` array(1) { [0]=> array(1) { ["balance"]=> array(2) { ["merchant"]=> array(6) { [0]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "0.00000000" ["currency_code"]=> string(3) "ETH" } [1]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "0.57000000" ["currency_code"]=> string(3) "BTC" } [2]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(11) "23.57327446" ["currency_code"]=> string(3) "TRX" } [3]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "5.00000000" ["currency_code"]=> string(4) "USDT" } [4]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(11) "10.00120000" ["currency_code"]=> string(4) "DASH" } [5]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "0.18500000" ["currency_code"]=> string(3) "LTC" } } ["user"]=> array(6) { [0]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "0.40000000" ["currency_code"]=> string(3) "BTC" } [1]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(11) "52.00000000" ["currency_code"]=> string(4) "USDT" } [2]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "0.00000000" ["currency_code"]=> string(4) "DASH" } [3]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "0.30000000" ["currency_code"]=> string(3) "LTC" } [4]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(11) "27.00000000" ["currency_code"]=> string(3) "TRX" } [5]=> array(3) { ["uuid"]=> string(32) "abcdabcd-abcd-1234-1234-abcdabcd" ["balance"]=> string(10) "0.19000000" ["currency_code"]=> string(3) "ETH" } } } } } ``` ### Resend notifications ```php "a7c0caec-a594-4aaa-b1c4-77d511857594"]; // or $data = ["order_id" => "12345"]; $result = $payment->reSendNotifications($data); ?> ``` Output: ``` bool(true) ``` ### Wallet create ```php 'TRON', 'currency' => 'USDT', 'order_id' => '5535321', 'url_callback' => 'https://example.com/callback' ]; $result = $payment->createWallet($data); ?> ``` Output: ``` array(5) { ["uuid"]=> string(12) "9f64a7ce-..." ["order_id"]=> string(2) "24" ["currency"]=> string(4) "USDT" ["network"]=> string(4) "tron" ["address"]=> string(6) "TK8..." } ``` ### Exceptions All methods can throw RequestBuilderException. ```php services(); } catch (\Cryptomus\Api\RequestBuilderException $e) { log('Error request Cryptomus to method ' . $e->getMethod() . ': ' . $e->getMessage()); } ?> ``` ## Requirements * **PHP v5.6.0** or higher * extension PHP **json** * extension PHP **curl** PK3CW]NÖ^žOOsrc/Payout.phpnu„[µü¤requestBuilder = new RequestBuilder($payoutKey, $merchantUuid); } /** * @param array $data * - @var string amount: Amount to payout * - @var string currency: Currency * - @var string network: Network * - @var string order_id: Your id * - @var string address: Wallet number * - @var string is_subtract: From where to withdraw the commission (1 - from the balance, 0 - from the amount) * - @var string url_callback: Callback link * @return bool|mixed * @throws RequestBuilderException */ public function create(array $data) { return $this->requestBuilder->sendRequest($this->version . '/payout', $data); } /** * uuid or order_id * @param array $data * - @var string uuid * - @var string order_id * @return bool|mixed * @throws RequestBuilderException */ public function info(array $data) { return $this->requestBuilder->sendRequest($this->version . '/payout/info', $data); } }PK3CW]MØ.#$$src/RequestBuilderException.phpnu„[µü¤method = $uri; $this->errors = $errors; parent::__construct($message, $responseCode, $previous); } /** * @return string */ public function getMethod() { return $this->method; } /** * @return array */ public function getErrors() { return $this->errors; } }PK3CW]r¬ŸV» » src/RequestBuilder.phpnu„[µü¤secretKey = $secretKey; $this->merchantUuid = $merchantUuid; } /** * @param $uri * @param array $data * @return bool|mixed * @throws RequestBuilderException */ public function sendRequest($uri, array $data = []) { $curl = curl_init(); $url = self::API_URL . $uri; $body = json_encode($data, JSON_UNESCAPED_UNICODE); $headers = [ 'Accept: application/json', 'Content-Type: application/json;charset=UTF-8', 'Content-Length: ' . strlen($body), 'merchant: ' . $this->merchantUuid, 'sign: ' . md5(base64_encode($body) . $this->secretKey) ]; curl_setopt_array( $curl, [ CURLOPT_URL => $url, CURLOPT_HTTPHEADER => $headers, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => 1, ] ); $response = curl_exec($curl); $responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($response === false) { throw new RequestBuilderException(curl_error($curl), $responseCode, $uri); } if (false === empty($response)) { $json = json_decode($response, true); if (is_null($json)) { throw new RequestBuilderException(json_last_error_msg(), $responseCode, $uri); } if ($responseCode !== 200 || (!is_null($json['state']) && $json['state'] != 0)) { if (!empty($json['message'])) { throw new RequestBuilderException($json['message'], $responseCode, $uri); } if (!empty($json['errors'])) { throw new RequestBuilderException('Validation error', $responseCode, $uri, $json['errors']); } } if (!empty($json['result']) && !is_null($json['state']) && $json['state'] == 0) { return $json['result']; } } return true; } }PK3CW]É©£Dsrc/Client.phpnu„[µü¤requestBuilder = new RequestBuilder($paymentKey, $merchantUuid); } /** * @param array $parameters Additional parameters * @return bool|mixed * @throws RequestBuilderException */ public function services(array $parameters = []) { return $this->requestBuilder->sendRequest($this->version . '/payment/services', $parameters); } /** * @param array $data * - @var string amount: Amount to pay * - @var string currency: Payment currency * - @var string network: Payment network * - @var string order_id: Order ID in your system * - @var string url_return: Redirect link * - @var string url_callback: Callback link * - @var boolean is_payment_multiple: Allow surcharges on payment * * - @var string lifetime: Payment lifetime in seconds * - @var string to_currency: Currency to convert amount to * @return bool|mixed * @throws RequestBuilderException */ public function create(array $data) { return $this->requestBuilder->sendRequest($this->version . '/payment', $data); } /** * uuid or order_id * @param array $data * - @var string uuid * - @var string order_id * @return bool|mixed * @throws RequestBuilderException */ public function info($data = []) { return $this->requestBuilder->sendRequest($this->version . '/payment/info', $data); } /** * @param string|int $page Pagination cursor * @param array $parameters Additional parameters * @return bool|mixed * @throws RequestBuilderException */ public function history($page = 1, array $parameters = []) { $data = array_merge($parameters, ['cursor' => strval($page)]); return $this->requestBuilder->sendRequest($this->version . '/payment/list', $data); } /** * @param array $parameters Additional parameters * @return bool|mixed * @throws RequestBuilderException */ public function balance(array $parameters = []) { return $this->requestBuilder->sendRequest($this->version . '/balance', $parameters); } /** * uuid or order_id * @param array $data * - @var string uuid: Payment's UUID * - @var string order_id: Order ID in your system * @return bool|mixed * @throws RequestBuilderException */ public function reSendNotifications(array $data) { return $this->requestBuilder->sendRequest($this->version . '/payment/resend', $data); } /** * @param array $data * - @var string network: Network * - @var string currency: Payment currency * - @var string order_id: Order ID in your system * - @var string url_callback: Callback url * @return bool|mixed * @throws RequestBuilderException */ public function createWallet(array $data) { return $this->requestBuilder->sendRequest($this->version . '/wallet', $data); } }PK3CW]‹…ô055 composer.jsonnu„[µü¤{ "name": "cryptomus/api-php-sdk", "description": "Cryptomus api SDK", "type": "library", "version": "1.0.0", "license": "MIT", "minimum-stability": "stable", "require": { "php": ">=5.6" }, "require-dev": { }, "autoload": { "psr-4": { "Cryptomus\\Api\\": "src/" } } }PK3CW]ëRc .gitignorenu„[µü¤/.idea /vendor /composer.lockPK3CW]&¹pμ&¼& README.mdnu„[µü¤PK3CW]NÖ^žOOõ&src/Payout.phpnu„[µü¤PK3CW]MØ.#$$‚,src/RequestBuilderException.phpnu„[µü¤PK3CW]r¬ŸV» » õ/src/RequestBuilder.phpnu„[µü¤PK3CW]É©£Dö9src/Client.phpnu„[µü¤PK3CW]rbÛ B<src/Payment.phpnu„[µü¤PK3CW]‹…ô055 ŒIcomposer.jsonnu„[µü¤PK3CW]ëRc þJ.gitignorenu„[µü¤PK€UK