Проверка баланса счета
Остаток на счету
Механизм взаимодействия, описанный на данной странице предоставит Вам возможность отслеживать баланс ваших счетов.
Формирование запроса происходит POST запросам, вам необходимо передать логин и пароль.
Если вам нужен конкретный счет, вы можете передать его номер, или же не вводить и
получите весь список счетов. Вы можете выбрать формат ответа JSON, XML, TEXT.
POST
https://uapi.bpay.md/v1/balance
$json = [
'login' => $this->login, /* Логин */
'password' => $this->password, /* Пароль */
'format' => 'json', /* Формат */
'account' => '2222222', /* Номер счета, Указывайте если хотите получить данные определенного счета */
];
Для передачи запроса, необходимо воспользоваться CURL. И Реализовать как пример ниже,
для того что бы управлять форматами ответа.
function request(string $url, array $json){
$url = $url . "?format={$json['format']}"; /* Управление форматами */
unset($json['format']);
$jsonrequest = json_encode($json);
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "User-Agent=Mozilla/5.0 Firefox/1.0.7");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonrequest);
$_PROVIDER_ANSWER = curl_exec($curl);
return $_PROVIDER_ANSWER;
}
| Поле | Тип | Значение | Описание |
|---|---|---|---|
| login | String | Обязательно | Указанный при регистрации в системе bpay.md и используемый для входа |
| password | String | Обязательно | Пароль, указанный при регистрации в системе bpay.md и используемый для входа |
| format | String | Необязательно | По стандарту формат ответа json. Вы можете выбрать формат который больше всего подходит json, xml, text. |
| account | Number | Необязательно | Если не указывать данный параметр , вы получите весь список счетов. Укажите номер счета и получите конкретный счет с информацией. |
{
"code": 100,
"text": "success",
"result": [
{
"account": 11999019,
"sum": "49547.00",
"valute": "498",
"valutename": "MDL"
}
]
}
» Формат: XML
<?xml version="1.0" encoding="utf-8"?> <response> <code>100</code> <text>success</text> <result> <account>11999019</account> <sum>49547.00</sum> <valute>498</valute> <valutename>MDL</valutename> </result> </response>
{
"code": 100,
"text": "success",
"result": [
[
{
"account": "11861932",
"sum": "-5302.32",
"valute": "498",
"valutename": "MDL"
},
{
"account": "11999019",
"sum": "49547.00",
"valute": "498",
"valutename": "MDL"
}
]
]
}
» Формат: XML
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>100</code>
<text>success</text>
<result>
<item key="0">
<account>11861932</account>
<sum>-5302.32</sum>
<valute>498</valute>
<valutename>MDL</valutename>
</item>
<item key="1">
<account>11999019</account>
<sum>49547.00</sum>
<valute>498</valute>
<valutename>MDL</valutename>
</item>
</result>
</response>
<?php
class UserApi{
private $login = 'Login';
private $password = 'Password';
private $apiURL = 'https://uapi.bpay.md/v1/balance';
public function balance(){
$json = [
'login' => $this->login,
'password' => $this->password,
'format' => 'xml',
];
return $this->request($this->apiURL , $json);
}
private function request(string $url, array $json){
$url = $url . "?format={$json['format']}";
unset($json['format']);
$jsonrequest = json_encode($json);
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "User-Agent=Mozilla/5.0 Firefox/1.0.7");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonrequest);
$_PROVIDER_ANSWER = curl_exec($curl);
return $_PROVIDER_ANSWER;
}
}
$ApiClient = new UserApi();
echo $ApiClient->balance();
Получение выписки с счета
Данный запрос служит для получения выписки по счету по указанному аккаунту
account.
Отправка данных совершается следующим образом.
POST
https://www.bpay.md/user-api/getpaymentshistory
<request>
<auth type="1">
<login>your_login</login>
<password>your_password</password>
</auth>
<account>1</account>
<date_start>1</date_start>
<date_end>1</date_end>
<state>1</state>
<service>1</service>
<date_type>1</date_type>
</request>
» Формат: JSON
POST
https://www.bpay.md/user-api-v2/
$json = [
'auth' => [
'login' => 'Login',
'password' => 'Password',
],
'account' => '11656558',
'date_end' => '2019-04-24',
'date_start' => '2019-04-24',
'aditional' => [
'service' => 'bpay',
'date_type' => 1,
'state' => 100,
]
];
| Поле | Тип | Значение | Описание |
|---|---|---|---|
| auth | String | Обязательно | Объединяет в себе параметр login и password |
| login | String | Обязательно | Указанный при регистрации в системе bpay.md и используемый для входа |
| password | String | Обязательно | Пароль, указанный при регистрации в системе bpay.md и используемый для входа |
| account | Number | Обязательно | Номер bpay кошелька |
| date_start | Date | Обязательно | Дата с |
| date_end | Date | Обязательно | Lата по |
| state | Number | Необязательно | Сатус платежей. При отсутствии какого-либо значения будут получены все имеющиеся платежи. Коды можно просмотреть ниже в таблице. |
| service | Number | Необязательно | Идентификатор услуги в пользу которой осуществлен платеж. Если поле пустое, то в ответе будут получены все имеющиеся платежи |
| date_type | String | Необязательно | Eсли поле пустое , то в ответе будут получены платежи по времени создания(addtime), если указана 1 ,то будут получены платежи по времени финального статуса(statetime) |
После верного формирования запроса, вы получите ответ с данными.
» Формат: XML
<?xml version='1.0' encoding="utf8"?>
<result>
<code>100</code>
<text>Success</text>
<payments>
<payment
trid="111111"
addtime="2016-11-23 13:09:10"
statetime="2016-11-23 18:09:10"
service=" Infocom"
serviceaccount=" 1123548895"
amount=" -1.00"
description=" achitarea serviciilor Infocom"
receipt=" 101496327083089"
balance=" 497.98">
guid="3214b276-b965-11e7-b414-525400464f7d">
</payment>
<payment
trid="1115669"
addtime="2016-11-25 20:09:10"
statetime="2016-11-25 20:10:10"
service=" bpay"
serviceaccount=" 1113333555"
amount=" -100.00"
description=" achitarea serviciilor bpay"
receipt=" 201496327083089"
balance=" 500.98">
guid="3214b273-b965-11e7-b414-525400464f7d">
</payment>
</payments>
<total>
<total_sum>-101</total_sum>
<total_payments>2</total_payments>
</total>
</result>
» Формат: JSON
{
"code":100,
"text":"OK",
"payments":[
{
"TrID":"5701299",
"AddTime":"2020-04-21 09:04:03",
"Service":"bpay",
"ServiceAccount":"123",
"ToAmount":"10.00",
"Description":"Описание товара",
"Receipt":"104557702648042",
"FromAcc":"4",
"ToAcc":"11042704",
"State":"100",
"Context":null,
"RestFrom":"9990.00",
"RestTo":"12022.58",
"Guid":"0c74780d-83af-11ea-bf30-0200c0a87304",
"StateTime":"2020-04-21 11:09:16"
},
{
"TrID":"5701321",
"AddTime":"2020-04-21 20:07:42",
"Service":"bpay",
"ServiceAccount":"11600653",
"ToAmount":"10.00",
"Description":"Описание товара",
"Receipt":"105901732459573",
"FromAcc":"4",
"ToAcc":"11042704",
"State":"100",
"Context":"{"rettrid": 5701322}",
"RestFrom":"9957.59",
"RestTo":"11916.82",
"Guid":"c2574c76-840b-11ea-bf30-0200c0a87304",
"StateTime":"2020-04-21 20:41:43"
}
],
"total":[
{
"TotalToAmount":"39.09",
"CountPayments":"4"
}
]
}
| Параметры | Значение |
|---|---|
| code | Статус запроса. Все статусы можно просмотреть ниже в таблице. |
| text | текстовое описание статуса |
| trid | уникальный номер платежа |
| addtime | дата и время платежа |
| statetime | дата и время финального статуса |
| service | название оплаченной услуги |
| serviceaccount | номер счета/фактуры указанный плательщиком при платеже |
| amount | сумма платежа |
| description | описание платежа |
| receipt | номер чека |
| balance | баланс bpay кошелька после проведенной транзакции |
| guid | (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор |
| total_sum | общая сумма платежей за выбранный период |
| total_payments | количество платежей за выбранный период |
| Код | Описание |
|---|---|
| 100 | запрос успешен |
| -10 | запрос на выписку по счета для указанного аккаунта запрещен |
| -20 | ошибка авторизации |
| -26 | <не представляется возможным извлечь платежи старше 40 дней/td> |
| -80 | ошибка базы данных |
| -85 | error in json parsing |
<?php
$xml="
<request>
<auth type=\"1\">
<login>myusername</login>
<password>mypassword</password>
</auth>
<account>11212640</account>
<date_start>2016-11-23 13:12:00</date_start>
<date_end>2016-11-25 23:59:59</date_end>
</request>";
$resp=request($xml, 'https://www.bpay.md/user-api/getpaymentshistory');
echo $resp;
function request($xmlrequest, $address)
{
$curl = curl_init();
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($curl,CURLOPT_POST, 1);
curl_setopt($curl,CURLOPT_URL, $address);
curl_setopt($curl,CURLOPT_USERAGENT,"User-Agent=Mozilla/5.0 Firefox/1.0.7");
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl,CURLOPT_POSTFIELDS, $xmlrequest);
$_PROVIDER_ANSWER = curl_exec($curl);
return $_PROVIDER_ANSWER;
}
?>
/**
* Class UserApi
*/
class UserApi{
private $login = 'your login';
private $password = 'your password';
private $apiURL = 'https://www.bpay.md/user-api-v2/';
/**
* @param array $rdata
* @return bool|string
*/
public function getPaymentsHistory(array $rdata){
$json = [
'auth' => [
'login' => $this->login,
'password' => $this->password,
],
'account' => $rdata['account'],
'date_start' => $rdata['date_start'],
'date_end' => $rdata['date_end']
];
$json = array_merge($json,$rdata['aditional']);
$url = $this->apiURL.'getPaymentsHistory';
return $this->request($url,$json);
}
/**
* @param string $url
* @param array $json
* @return bool|string
*/
private function request(string $url, array $json){
$jsonrequest = json_encode($json);
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "User-Agent=Mozilla/5.0 Firefox/1.0.7");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonrequest);
$_PROVIDER_ANSWER = curl_exec($curl);
return $_PROVIDER_ANSWER;
}
$ApiClient = new UserApi();
echo $ApiClient->getPaymentsHistory([
'account' => '11656558',
'date_end' => '2019-04-24',
'date_start' => '2019-04-24',
'aditional' => [
'service' => 'bpay',
'date_type' => 1,
'state' => 100,
]
]);
}