Accepting Bitcoin, Bitcoin Cash, Ethereum, DASH, Litecoin, Monero, NEO, NEM, Ripple, Cardano, Dogecoin, Zcash, Stellar, EOS, TRON, Binance Coin and any ERC20 and stablecoin, NEO tokens in one place!
The easiest way to install the B2BinPay API client is to require itwith Composer through command-line:
composer require b2binpay/api-php
or by editing composer.json
:
{
"require": {
"b2binpay/api-php": "^1.2"
}
}
composer install --no-dev
cp .env.example .env
Currency | Name | Blockchain, links |
---|---|---|
ADA | Cardano | Cardano |
BCH | Bitcoin Cash | Bitcoin Cash |
BNB | Binance Coin | Binance Chain, BEP2 |
BTC | Bitcoin | Bitcoin |
BUSD-ETH | Binance USD | Ethereum, Stablecoin |
DAI-ETH | Dai | Ethereum, Stablecoin |
DASH | Dash | Dash |
DOGE | Dogecoin | Dogecoin |
EOS | EOS | EOS |
ETH | Ethereum | Ethereum |
GUSD-ETH | Gemini Dollar | Ethereum, Stablecoin |
LTC | Litecoin | Litecoin |
NEO | Neo | Neo |
PAX-ETH | Paxos Standard | Ethereum, Stablecoin |
TRX | TRON | TRON |
TUSD-ETH | TrueUSD | Ethereum, Stablecoin |
USDC-ETH | USD Coin | Ethereum, Stablecoin |
USDT-ETH | Tether | Ethereum, Stablecoin |
USDT-OMNI | Tether | OMNI, Stablecoin |
XEM | NEM | NEM |
XLM | Stellar | Stellar |
XMR | Monero | Monero |
XRP | Ripple | Ripple |
ZEC | Zcash | Zcash |
See examples with comments in examples/README.md
Use the API key and secret to access your B2BinPay account:
$provider = new B2Binpay\Provider(
'API_KEY',
'API_SECRET'
);
In order to use testing sandbox, pass true
as a third parameter for B2Binpay\Provider
:
$provider = new B2Binpay\Provider(
'API_KEY',
'API_SECRET',
true
);
Warning: Sandbox and main gateway have their own pairs of key and secret!
The payment currency is considered to match the currency of your wallet.
Create a new bill:
$bill = $provider->createBill(
'WALLET_ID',
'AMOUNT',
'CURRENCY',
'LIFETIME',
'TRACKING_ID',
'CALLBACK_URL',
'SUCCESS_URL',
'ERROR_URL'
);
Params | Description |
---|---|
WALLET_ID | (int) Each wallet is responsible for creating bill only in the currency assigned to it |
AMOUNT | (string) Amount in the value of the currency being created |
CURRENCY | (string) See list of supported currencies in the table above |
LIFETIME | (int) Number in seconds that will set bill to expire from the current creation date |
TRACKING_ID | (string) Optional. Track for bill tracking. This value will be returned on callback |
CALLBACK_URL | (string) Optional. URL to which the callback will be sent |
SUCCESS_URL | (string) _ |
Optional_. URL to which the user can be sent after successful payment, is used only on the payment page | |
ERROR_URL | (string) _ |
Optional_. URL to which the user can be sent after unsuccessful payment, is used only on the payment page |
You can get actual rates and convert supported currencies respecting your wallet's parameters.
Get rates for BASE_CURRENCY:
$rates = $provider->getRates('BASE_CURRENCY', 'RATE_TYPE');
Params | Description |
---|---|
BASE_CURRENCY | (string) Optional. Currency to which the rates will be calculated. Default: USD |
RATE_TYPE | (string) Optional. Receiving the type of rates, for deposit and withdrawal. Default: deposit |
Convert currency using actual rates:
$amount = $provider->convertCurrency('AMOUNT', 'BASE_CURRENCY', 'CURRENCY', $rates);
Params | Description |
---|---|
AMOUNT | (string) The amount in the currency to be converted |
BASE_CURRENCY | (string) The currency in which the amount is indicated |
CURRENCY | (string) Currency in which you want to convert the amount |
$rates | (array) _ |
Optional_. Current rates. If the parameter is not specified, then the rates will be requested again |
Now you can provide $amount
variable as a second parameter for createBill()
method to set an accurate amount ofcryptocurrency.
You can add some markup to the existing amount.
Set 10% markup for the current amount:
$amount = $provider->addMarkup($amount, 'CURRENCY', 10);
Params | Description |
---|---|
$amount | (string) Amount to add markup |
CURRENCY | (string) Currency in which markup is added |
10 | (int) Percentage on which to add markup |
Once bill status changed, our server can send a callback to your configured Callback URL. Also, you can specify TrackingID, which will return with the callback to identify the exact order. To do that provide additional parametersto createBill()
method:
$bill = $provider->createBill(
'WALLET_ID',
$amount,
'CURRENCY',
'LIFETIME',
'202009051801',
'https://my.callback.url/callback.php'
);
Warning: If specified, your Callback URL should return the message "OK" with status 200. Until that payment will notbe considered complete!
header('HTTP/1.1 200 OK');
exit('OK');
You can verify Callback request headers by comparing it with the $provider->verifySign()
method output:
$verifySign = $provider->verifySign($_POST['sign']['time'], $_POST['sign']['hash']);
if (!$verifySign) {
header('HTTP/1.1 401 Unauthorized');
exit();
}
WARNING: for each callback $ _POST ['sign'] ['hash']
a new one is generated - if youreceived $ _POST ['sign'] ['hash']
which was already used before, you should throw the same error as for signatureverification
Bill callback request will contain the following data:
{
"data": {
"id": BILL_ID,
"url": URL_TO_BILL_PAYMENT_PAGE,
"address": BLOCKCHAIN_ADDRESS,
"created": TIME,
"expired": TIME
|
NULL,
"status": BILL_STATUS,
"tracking_id": TRACKING_ID,
"callback_url": URL
|
NULL
"amount": AMOUNT_MULTIPLIED_BY_TEN_IN_POW,
"actual_amount": ALREADY_PAID_AMOUNT_MULTIPLIED_BY_TEN_IN_POW,
"pow": POW,
"message": MESSAGE
|
NULL,
"transactions": [
{
"id": TRANSACTION_ID,
"bill_id": BILL_ID,
"created": TIME,
"amount": TRANSACTION_AMOUNT_MULTIPLIED_BY_TEN_IN_POW
",
"pow": POW,
"status": TRANSACTION_STATUS,
"transaction": HASH_TRANSACTION_IN_BLOCKCHAIN,
"type": 0,
"currency": {
"iso": ISO_CODE_CURRENCY,
"alpha": SYMBOL_CURRENCY
}
}
],
"currency": {
"iso": ISO_CODE_CURRENCY,
"alpha": SYMBOL_CURRENCY
},
"sign": {
"time": TIME,
"hash": HASH
}
}
}
Withdraw callback request will contain the following data:
{
"data": {
"id": WITHDRAW_ID,
"virtual_wallet_id": VIRTUAL_WALLET_ID,
"with_fee": INCLUDE_COMMISSION_IN_WITHDRAW,
"created": TIME,
"address": BLOCKCHAIN_ADDRESS,
"amount": AMOUNT_MULTIPLIED_BY_TEN_IN_POW,
"fee": BLOCKCHAIN_FEE_MULTIPLIED_BY_TEN_IN_POW,
"pow": POW,
"status": WITHDRAW_STATUS,
"transaction": HASH_TRANSACTION_IN_BLOCKCHAIN
|
NULL
"tracking_id": TRACKING_ID
|
NULL,
"unique_id": UNIQUE_WITHDRAW_ID,
"callback_url": URL
|
NULL,
"message": MESSAGE
|
NULL,
"currency": {
"iso": ISO_CODE_CURRENCY,
"alpha": SYMBOL_CURRENCY
},
"sign": {
"time": TIME,
"hash": HASH
}
}
}
From a virtual wallet, you can make withdrawals to any blockchain, for this you need to specify ADDRESS and CURRENCY.
Create a new withdraw:
$bill = $provider->createWithdrawal(
'VIRTUAL_WALLET_ID',
'AMOUNT',
'CURRENCY',
'ADDRESS',
'UNIQUE_ID',
'TRACKING_ID',
'CALLBACK_URL',
'MESSAGE',
'WITH_FEE'
);
Params | Description |
---|---|
VIRTUAL_WALLET_ID | (int) ID virtual wallet. If the currency of the virtual wallet does not match the currency in which the withdrawal is to be made, the system will automatically convert at the current rate |
AMOUNT | (string) Amount to be withdrawn |
CURRENCY | (string) See list of supported currencies in the table above |
ADDRESS | (string) Blockchain address to which you want to withdraw |
UNIQUE_ID | (int) Any unique positive number. This number should not be repeated from withdrawal to withdrawal |
TRACKING_ID | (string) Optional. Track for withdraw tracking. This value will be returned on callback |
CALLBACK_URL | (string) Optional. URL to which the callback will be sent |
MESSAGE | (string) Optional. Used for Ripple blockchain, NEM, Stellar, EOS and Binance Chain |
WITH_FEE | (boolean) _ |
Optional_. Include the commission in the withdrawal amount. Not all blockchains support this method |
Status | Description |
---|---|
-2 | Failed |
-1 | Expired |
1 | Created |
2 | Paid |
Status | Description |
---|---|
-4 | Waiting for return |
-3 | Returned |
-2 | Failed |
-1 | Expired |
0 | Pending |
1 | Sent |
2 | Approved |
Status | Description |
---|---|
-2 | Failed |
0 | Waiting |
1 | Pending |
2 | Sent |
Status | Description |
---|---|
-1 | Failed |
0 | Pending |
1 | Sent |
Status | Description |
---|---|
0 | Deposit from blockchain |
1 | Bank transfer |
2 | Auto withdraw |
3 | Withdraw blockchain fee |
4 | Token payout fee |
5 | Finance deposit |
6 | Bank transfer commission |
7 | Commissions |
B2BinPay\API-PHP is licensed under the MIT License.
Ten·Api地址:https://tenapi.cn Ten·Api使用文档:https://docs.tenapi.cn/ 一言 随机动漫图片 二维码生成 每日Bing Ico站标获取 添加QQ好友 获取QQ头像 获取空间头像 QQ一键加群 获取昵称,头像 歌曲直链解析 QQ在线状态 历史上的今天 ICP备案查询 百度收录查询 蓝奏直链解析 哔哩哔哩信息 手机号归属地 爱站权重查询 IP签名档
无法启动此程序因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll的解决方案
缺少 api-ms-win-crt-runtime-l1-1-0.dll php5 导致需安装 Visual C++ Redistributable for Visual Studio 2012 Update 4 缺少VCRUNTIME140.DLL php7 导致需安装 Visual C++ Redistributable for Visual Studio 2015
重装了系统,要做php实验,安装Wampserver32是提示这个错误,去system32中没有找到这个dll,但是在system64中找到了。所以一开始以为卸载了32位的再安装Wampserver64就能解决,没想到仍然报错。又看了看驱动精灵也没检测出来到底缺什么。后来看了文章http://blog.csdn.net/huqiao1206/article/details/50768481,下载了
前言 springmvc要进行数据校验,通常是利用hibernate中的校验框架validation,使用validation需要在项目中加入三个jar包: hibernate-validator-4.3.0.Final.jar jboss-logging-3.1.0.cr2.jar validation-api-1.0.0.GA.jar 这是学习ssm框架时老师说要导入的三个jar包 问题 在你
无法启动此程序因为计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll的解决方案
下载地址:http://www.jb51.net/dll/api-ms-win-crt-conio-l1-1-0.dll.html#download www.jb51.net/dll/部分dll文件中有多个目录分别表示多个系统专用文件 X86表示32位系统 x64表示64位系统 dll控件常规安装方法(仅供参考): 一、如果在运行某软件或编译程序时提示缺少、找不到dll等类似提示,您可将从脚本之家
1.sp-api介绍: https://developer.amazonservices.com/ 2.github文档: https://github.com/amzn/selling-partner-api-docs 3.开发者文档: 3.1 英文版 3.2 中文版 4.php版sdk: https://github.com/clousale/amazon-sp-api-php PHP 的这个
目前,语音识别,即将语音内容转换为文字的技术已经比较成熟,遥想当时锤子发布会上展示的讯飞输入法语音识别,着实让讯飞火了一把。由于此类语音识别需要采集大量的样本,才能达到一定的准确度,个人很难从零开始搭建。但是,许多拥有语音识别技术的公司,或多或少会提供一些API或者SDK供开发者使用,这样就把语音识别的门槛降到了一个很低的程度,只需几行代码即可实现。下面我介绍以下如何使用Python调用百度的RE
传入姓名、身份证号,校验此二要素是否 一致。用来实名认证 请求地址 HTTPGET/POST https://www.youwk.cn/api/sm 请求参数 参数名 参数说明 key 用户请求密钥,可在 密钥管理页面 申请 name 姓名 idcard 身份证号码 请求结果参数说明 参数名 参数说明 code 状态码 msg 状态说明 data.name 姓名 data.idcard 身份证号码
PHP后端: 一、请求地址示例 1、请求地址 http://www.zhikev2.com/exam/seeTest?timeStamp=1525096310&apiSign=324owefldskfjsdk&userName=luowei 注:timeStamp为当前时间戳 2、参数说明 上述请求地址中附带了三个参数timeStamp、apiSign、userName 二、apiSign生成规
短信发送API(SendSms)---PHP 更新时间:2017-08-17 15:16:35 分享: 发送短信接口(SendSms) 步骤 1 创建阿里云账号 为了访问短信服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号: 访问阿里云 官方网站,单击页面上的 免费注册 按钮。 按照屏幕提示完成注册流程并进行实名认证,短信服务只支持实名认证用户使用。为了更好地使用
对于php的入学者来说,很少接触api,因此对于如何写不知所措,其实开发API 比开发WEB 更简洁,但可能逻辑更复杂,因为API 其实就是数据输出,不用呈现页面,所以也就不存在MVC(API 只有M 和C),和WEB 开发一样,首先需要一些相关的参数,这些参数,都会由客户端传过来,也许是GET也许是POST,这个需要开发团队相互之间约定好,或者制定统一规范。 1. 我们写接口就要有一
1,xml报文不用附加"<?xml version="1.0" encoding="UTF-8" ?>",不支持,会报格式错误。 2,提交服务器时要重点注意。 直接使用curl方式的,一定要把数据做http_build_query,千万不要直接放数组里提交。 $params = array( 'xml' => 'your xml', 'verifyCode'
DeepL的翻译效果比google baidu 有道 必应强很多,目前只有科大讯飞的翻译可以和它比,因为公司自己是跨境公司,经常翻译外国人的语句。只有这俩比较OK。但是科大的翻译又好贵,DeepL的比较划算 function DeepL($value,$auth_key,$target){ $ch = curl_init(); curl_setopt($ch, CURLOPT_
概述 目前市场上有很多家的语音识别接口可用,简单测试都不要钱。国内的BAT和科大讯飞,国外的微软和谷歌都提供了中文的语音识别接口,既有sdk又有webAPI。我的测试都是在python3环境下进行的。 最终选择百度和科大讯飞的接口。主要是考虑中文识别应该国内厂商做的更好。 免费试用阶段,科大讯飞每天限定500次调用。百度则只限制每秒20次,总次数没限制。 试用下来的感觉就是,科大讯飞的接口更快,断
百度地图开放平台地理编码服务和逆地理编码服务的api文档地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding Geocoding API 是一类接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# 、C++、Java等开发语言发送请求且接收JSON、XM
PHP中调用接口 如:http://localhost/operate.php?act=get_user_list&type=json 在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。 你只需要在你PHP代码中执行这条链接他就会返回。 GET方式的直接使用 $file_contents = file_get
安装 Google API php 客户端类库 安装 需求 PHP version 5.2.1 以上. JSON PHP 扩展. 支持一个可写的文件系统或机器。 获取客户端类库 有两种方式获取该客户端类库。 使用Composer 你可以通过添加到composer.json中,使该类库作为依赖进行安装. "require": { "google/apiclient": "1.0.*@beta"
做一些视频小程序都会用到的接口php源码 比如小程序解析接口请求方式调用接口示例: $url = ‘https://v.douyin.com/2Jfw4Mo/’; //请把此处的uid和token换成你自己的 这是GET请求方式 a p i = h t t p s : / / e e a p i . c n / a p i / v i d e o / 32886 D D 5 A 6 A 23 C
废话不多说,一针见血,go! 一起来看 API Caching 缓存 缓存类允许您管理缓存AssetBundles,下载使用 WWW.LoadFromCacheOrDownload Caching.Authorize 授权 授权这个Unity内容使用缓存 Caching.CleanCache 清除缓存 删除这个内容相关的缓存文件夹 当你已经有一个缓存许可证时,这个函数才能激活 Caching.Au
MultiSearch API multi search API 允许在同一API中执行多个搜索请求。它的端点(endpoint)是 _msearch 。 首先请看MultiSearch API Query 文档 SearchRequestBuilder srb1 = client .prepareSearch().setQuery(QueryBuilders.queryStringQue
6.6 ABP表现层 - AJAX API 6.6.2.1 AJAX操作问题 现代的应用经常会使用AJAX,尤其是单页应用,几乎是和服务器通信的唯一手段,执行AJAX通常会有以下步骤: 基本上:为了执行一个AJAX调用,首先你要在客户端提供一个可供请求的URL,选取提交数据和一个方法(GET,POST,PUT,DELETE)。 等待调用完成后,处理返回结果。当执行AJAX调用服务器端的时候,可能会
Criteria API是一个预定义的API,用于定义实体的查询。 它是定义JPQL查询的另一种方法。 这些查询是类型安全的,可移植且易于通过更改语法进行修改。 与JPQL类似,它遵循抽象模式(易于编辑模式)和嵌入对象。 元数据API与标准API混合以为标准查询建模持久实体。 标准API的主要优点是可以在编译期间更早地检测到错误。 基于字符串的JPQL查询和基于JPA标准的查询在性能和效率上是相同
什么是REST架构? REST代表REpresentational State Transfer。 REST是基于Web标准的体系结构,使用HTTP协议。 它围绕资源,其中每个组件都是资源,资源由使用HTTP标准方法的公共接口访问。 REST最初由Roy Fielding于2000年推出。 REST服务器只提供对资源和REST客户端访问的访问,并使用HTTP协议修改资源。 这里每个资源都由URI
问题内容: 此处的典型示例是Twitter的API。我从概念上了解REST API的工作原理,从本质上讲,它只是针对您的特定请求的服务器查询,然后您会在其中收到响应(JSON,XML等),很棒。 但是我不确定在后台如何使用流API。我了解如何食用。例如,使用Twitter收听回复。从响应中侦听数据,并在其中分批发送推文。在字符串缓冲区中建立块,然后等待换行指示Tweet的结束。但是他们正在做些什么
我正在开发一个基于Apache JackRabbit OAK(1.3.2)的Web应用程序,它公开了2套API: JCR API 橡木原料药 我的问题是应用程序应该使用哪种API?我能够使用任一API实现应用程序操作。在特性/功能(如有)方面的权衡是什么。 谢啦
自检API Stylus支持自我检测的API, 这允许混写以及函数反应调用者的相关性。 混写(mixin) mixin这个局部变量在函数体内自动赋值。如果调用的函数在根级别,则mixin包含字符串root, 如果其他情况,则是block, 如果调用函数有返回值,最终为false. 下面这个例子中,我们定义reset(), 根据其是混入了根部,还是混入块状域,还是混入返回值中,来修改其值,并作为fo
GDI +(图形绘制界面), CoreGraphics和Cairo libraries构成了wxPython中绘制API的框架。 wx.GraphicsContext是主要的可绘制对象,使用它可以创建各种Device Context对象。 wx.DC是一个抽象类。 其派生类用于在不同设备上呈现图形和文本。 设备上下文类是 - wx.ScreenDC - 使用它在屏幕上绘画,而不是单个窗口。 wx.