支付接口1—跳轉到我們的支付頁

支付方式:PC頁面掃碼支付手機H5支付。在我們提供的支付頁面完成支付,支付完成後自動跳轉支付結果頁。

跳轉支付頁接口URL:https://sdk.b.app/api/order/h5

傳參方式:POST

使用方法:您的服務器用表單(application/x-www-form-urlencoded)post的方式,post參數並跳轉到此接口,顯示我們的支付頁。

您需提供兩個URL:1.用於接收回調通知,對應參數notify_url
                            2.用於展示支付結果信息,對應參數return_url

請求參數

參數 必填 類型 描述
app_key 必填 string 平臺生成的 app key,16 位字符
out_trade_no 必填 string 商戶訂單號,最長 32 位字符,請保證訂單號的唯一性
sign 必填 string 簽名,32 位字符
nonce_str 必填 string 隨機字串,最長 32 位字符,使用隨機字符串是出於接口安全考慮,用來防禦請求重發攻擊
total_fee 必填 long 訂單金額,單位(分),且 total_fee > 0
body 必填 string 商品描述,最長 30 位字符
return_url 必填 string 展示支付成功信息的頁面,不長於256位字符
notify_url string 接收回調通知的頁面地址,不長於256位字符
order_ip string 訂單發起端端ip(用戶的ip),如:114.114.114.114
extra string 額外參數,支付成功會原樣返回,最長 64 位字符

注釋:

(1)1位字符(1個中文字、1個英文字母、1個標點符號、1個空格各為1位字符)

(2)“分”為人民幣單位

請求例子

  1. $ curl -X POST -d 'sign=65a6d618b15e9a9da3e831084ecb4380&out_trade_no=12345679&nonce_str=xxx&app_key=65f0806337b6933f&total_fee=1&body=商品名稱&notify_url=http://baidu.com&order_ip=127.0.0.1&return_url=http://www.baidu.com' https://sdk.b.app/api/order/h5

返回參數

參數格式:application/json

參數 類型 描述
code int 狀態碼,200 代表創建成功,其他狀態碼請對照 msg 返回的信息內容
msg string 提示信息
data string 支付頁面URL地址,請直接把支付頁面展示給用戶即可

返回例子

  1. {
  2. "code": 200,
  3. "msg": "ok",
  4. "data": "https://sdk.b.app/h5.html?order_no=xxxxxxx"
  5. }

支付接口2—自定義支付頁

支付方式:PC頁面掃碼支付手機H5支付。在您自定義的支付頁完成後支付,支付結果由您返回。

獲取支付二維碼內容接口URL:https://sdk.b.app/api/order/scan

傳參方式: POST

使用方法:您的服務器用表單(application/x-www-form-urlencoded)post的方式,post參數並跳轉到此接口,獲取支付訂單信息,顯示在您自定義的支付頁面。

您需提供1個URL用於接收回調信息,對應參數notify_url

支付訂單狀態:需要您查詢您的服務器或是通過查詢接口獲取訂單信息,並展示。

請求參數

參數 必填 類型 描述
app_key 必填 string 平臺生成的 app key,16 位字符
out_trade_no 必填 string 商戶訂單號,最長 32 位字符,請保證訂單號的唯一性
sign 必填 string 簽名,32 位字符
nonce_str 必填 string 隨機字串,最長 32 位字符,使用隨機字符串是出於接口安全考慮,用來防禦請求重發攻擊
total_fee 必填 long 訂單金額,單位(分),且 total_fee > 0
body 必填 string 商品描述,最長 30 位字符
notify_url string 回調地址,如果不傳,會默認用商戶預留的默認回調地址,不長於256位字符
order_ip string 訂單發起端端ip(用戶的ip),如:114.114.114.114
extra string 額外參數,支付成功會原樣返回,最長 64 位字符

注釋:

(1)1位字符(1個中文字、1個英文字母、1個標點符號、1個空格各為1位字符)

(2)“分”為人民幣單位

請求例子

  1. $ curl -X POST -d 'sign=0a92f77d74c96d85fdbf2e4d554b2757&out_trade_no=1234567&nonce_str=xxx&app_key=65f0806337b6933f&total_fee=1&body=商品名稱&notify_url=http://baidu.com&order_ip=127.0.0.1' https://sdk.b.app/api/order/scan

返回參數

參數格式:application/json

參數 類型 描述
code int 狀態碼,200 代表創建成功,其他狀態碼請對照 msg 返回的信息內容
msg string 提示信息
data object -
data.qr_code string 二維碼內容,請把此內容生成二維碼展示給用戶支付
data.out_trade_no string 商戶訂單號,最長 32 位字符
data.order_no string 平臺訂單號,32 位字符,此訂單號在 B.app 上唯一

注釋:1位字符(1個中文字、1個英文字母、1個標點符號、1個空格各為1位字符)

返回例子

  1. {
  2. "code": 200,
  3. "msg": "ok",
  4. "data": {
  5. "qr_code": "bapp://wallet.bitblank/pay?sid=100001&oi=201902191639594f541e",
  6. "out_trade_no": "1234567",
  7. "order_no": "201902191737220ce600"
  8. }
  9. }

查詢接口—獲取訂單信息

[GET] https://sdk.b.app/api/order

請求參數

參數 必填 類型 描述
app_key 必填 string 平臺生成的 app key,16 位字符
out_trade_no 必填 string 商戶訂單號,最長 32 位字符
sign 必填 string 簽名,32 位字符
nonce_str 必填 string 隨機字串,最長 32 位字符,使用隨機字符串是出於接口安全考慮,用來防禦請求重發攻擊

注釋:1位字符(1個中文字、1個英文字母、1個標點符號、1個空格各為1位字符)

請求例子

  1. curl 'https://sdk.b.app/api/order?sign=0093f6fc63876cbb94a6f618a07fa606&out_trade_no=1234567&nonce_str=xxx&app_key=65f0806337b6933f'

返回參數

參數格式:application/json

參數 類型 描述
code int 狀態碼,200 代表獲取成功,其他狀態碼請對照 msg 返回的信息內容
msg string 提示信息
data object -
data.out_trade_no string 商戶訂單號,最長 32 位字符
data.body string 商品描述,最長 30 位字符
data.notify_url string 回調地址
data.order_ip string 訂單發起端端ip
data.total_fee long 訂單金額,單位字符(分)
data.total_btc long 比特幣金額,單位(聰)
data.pay_time long 支付時間戳(13 位字符),如果未支付或者支付失敗,此值位 0
data.create_time long 訂單創建時間戳(13 位字符)
data.order_no string 平臺訂單號,32 位字符,此訂單號在 B.app 上唯一
data.app_key string 平臺生成的 app key,16 位字符
data.extra string 額外參數,最長 64 位字符
data.trade_type int 訂單類型,1:掃碼支付 2:H5支付 3:APP支付
data.trade_state int 訂單狀態,0:未支付 1:支付成功 2:訂單超時自動關閉

注釋:

(1)1位字符(1個中文字、1個英文字母、1個標點符號、1個空格各為1位字符)

(2)“分”為人民幣單位

(3)1BTC=100,000,000聰

返回例子

  1. {
  2. "code": 200,
  3. "msg": "ok",
  4. "data": {
  5. "out_trade_no": "1234567",
  6. "body": "商品名稱",
  7. "notify_url": "http://baidu.com",
  8. "order_ip": "127.0.0.1",
  9. "total_fee": 1,
  10. "pay_time": 1550646688637,
  11. "create_time": 1550569042680,
  12. "order_no": "201902191737220ce600",
  13. "app_key": "65f0806337b6933f",
  14. "extra": "",
  15. "trade_type": 1,
  16. "trade_state": 1
  17. }
  18. }

支付成功通知—支付回調

回調返回參數

參數格式:application/json

回調會以 POST 的形式,回調到創建訂單接口中指定的 notify_url,把訂單信息返回給接入的服務端,請務必對結果簽名做校驗。

參數 類型 描述
out_trade_no string 商戶訂單號,最長 32 位字符
app_key string 平臺生成的 app key,16 位字符
body string 商品描述,最長 30 位字符
order_no string 平臺訂單號,32 位字符,此訂單號在 B.app 上唯一
trade_type int 訂單類型,1:掃碼支付 2:H5支付 3:APP支付
trade_state int 訂單狀態,0:未支付 1:支付成功 2:訂單超時自動關閉
create_time long 訂單創建時間戳(13 位字符)
pay_time long 支付時間戳(13 位字符)
total_fee long 訂單金額,單位(分)
sign string 簽名,32 位字符
order_ip string 訂單發起端端ip
rate double 交易時的比特幣匯率,單位(分/BTC),最多保留 8 位小數
nonce_str string 隨機字串,最長 32 位字符,使用隨機字符串是出於接口安全考慮,用來防禦請求重發攻擊
extra string 額外參數,最長 64 位字符
service_charge long 手續費,單位(聰)*此字段已過期
total_btc long 比特幣金額,單位(聰)注釋:1BTC=100,000,000聰
mch_rate double 商戶手續費費率,最多保留 8 位小數。商戶手續費=mch_rate*total_btc
mch_btc long 商戶手續費,單位(聰)

注釋:

(1)1位字符(1個中文字、1個英文字母、1個標點符號、1個空格各為1位字符)

(2)“分”為人民幣單位

(3)1BTC=100,000,000聰

回調返回例子

  1. {
  2. "out_trade_no": "1234567",
  3. "body": "商品名稱",
  4. "order_ip": "127.0.0.1",
  5. "total_fee": "1",
  6. "pay_time": "1550646688637",
  7. "create_time": "1550569042680",
  8. "order_no": "201902191737220ce600",
  9. "trade_type": "1",
  10. "trade_state": "1",
  11. "rate": "2655281.00885123",
  12. "total_btc": "37",
  13. "extra": "",
  14. "app_key": "65f0806337b6933f",
  15. "nonce_str": "643836f9b82d6967b5e93b439ff81303",
  16. "service_charge": "0",
  17. "sign": "09f70b6ddf0b3f9168ab636a453c2f1a",
  18. "mch_rate": "0.001",
  19. "mch_btc": "1"
  20. }

處理回調返回結果

您的服務器接收到回調後,請返回HTTP狀態碼 200

回調處理成功,請返回 SUCCESS 字串,處理失敗請返回 FAIL 字串。

重試機制:

當您的服務器返回不是200且不是SUCCESS,系統會重試回調五次,超過5次數,不繼續重試,重試時間間隔 5秒 10秒 30秒 1分鐘 5分鐘 (注意:當收到回調進行處理時,首先檢查對應業務數據的狀態,判斷該回調是否已經處理過,如果沒有處理過再進行處理,如果處理過直接返回結果成功。)

轉賬接口——可用場景:企業支付、退款、發紅包

提交轉賬內容接口URL:https://bapi.app/api/transfer/user

傳參方式: POST

使用方法:您的服務器用表單(application/x-www-form-urlencoded)post的方式並攜帶SSL證書,post參數並跳轉到此接口,提交轉賬內容。

注:此接口默認關閉,開通需要申請。開通時會提供SSL證書。

請求參數

參數 必填 類型 描述
app_key 必填 string 平臺生成的 app key,16 位字符
out_trade_no 必填 string 商戶訂單號,最長 32 位字符
sign 必填 string 簽名,32 位字符
nonce_str 必填 string 隨機字串,最長 32 位字符,使用隨機字符串是出於接口安全考慮,用來防禦請求重發攻擊
total_fee 必填 long 訂單金額,單位(分),且 total_fee > 0
account 必填 string 接收者的B.app登入帳號,(不支持轉賬給自己)
order_ip string 訂單發起端端ip(用戶的ip),如:114.114.114.114
description string 轉賬描述,最長 50 位字符

注釋:

(1)1位字符(1個中文字、1個英文字母、1個標點符號、1個空格各為1位字符)

(2)“分”為人民幣單位

請求例子

  1. $ curl -X POST-d 'sign=fe9f2493cb9418ded81714e133bd1efb&app_key=65f0806337b6933f&out_trade_no=456&nonce_str=xxx&total_fee=300&account=15018888888' https://bapi.app/api/transfer/user

返回參數

參數格式:application/json

參數 類型 描述
code int 狀態碼,200 代表獲取成功,其他狀態碼請對照 msg 返回的信息內容
msg string 提示信息

返回例子

  1. {
  2. "code": 200,
  3. "msg": "ok",
  4. }

簽名方法說明

生成步驟

第一步

設所有發送或者接收到的數據為集合M,將集合M內非空參數值的參數按照參數名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字串 stringSignTemp

特別注意以下重要規則:

  • 參數名ASCII碼從小到大排序(字典序)
  • 如果參數的值為null不參與簽名
  • 參數名區分大小寫
  • 集合M中不能包含 sign 參數,若有,請去掉此參數再簽名

第二步

stringSignTemp最後拼接上app_secret得到stringSignOrigin字串

第三步

stringSignOrigin進行MD5運算,再將得到的字串所有轉換為小寫,得到sign

舉例說明

假如傳送的參數如下:

  1. app_key: 00000000
  2. channel: 1
  3. platform: 2
  4. money: 1
  5. client_ip: 127.0.0.1
  6. subject: my_subject

假設app_secret為: your_app_secret

第一步

得到 stringSignTemp

  1. stringSignTemp = "app_key=00000000&channel=1&client_ip=127.0.0.1&money=1&platform=2&subject=my_subject"

第二步

得到 stringSignOrigin

  1. stringSignOrigin = stringSignTemp + "&app_secret=your_app_secret"

此時 stringSignOrigin 的值為 app_key=00000000&channel=1&client_ip=127.0.0.1&money=1&platform=2&subject=my_subject&app_secret=your_app_secret

第三步

得到簽名

  1. signTemp = md5(stringSignOrigin)
  2. sign = signTemp.toLowerCase()

即:

  1. md5("app_key=00000000&channel=1&client_ip=127.0.0.1&money=1&platform=2&subject=my_subject&app_secret=your_app_secret").toLowerCase()

得出的簽名如下

  1. 1af39b08e44a9016a359aebd42e97b07

關於B.app

B.app是一個可以支付比特幣、管理比特幣的錢包。具有一秒到賬、零手續費、簡單安全三大特色。我們提供支付比特幣的api解決方案,適合任何商家接入比特幣收款。

API檔案