百度智能小程序 調(diào)起百度收銀臺

2020-09-05 15:01 更新

百度收銀臺接口2.0 說明

需查閱百度收銀臺 1.0 接口,點擊詳情。

本文閱讀對象:百度智能小程序接入支付能力涉及的技術(shù)架構(gòu)師,研發(fā)工程師,測試工程師,系統(tǒng)運維工程師。

支付 API 列表

  • 調(diào)起百度收銀臺
  • 通知支付狀態(tài)
  • 查詢訂單(升級)
  • 關(guān)閉訂單(新增)
  • 申請退款(升級)
  • 查詢退款(新增)
  • 通知退款狀態(tài)
  • 下載訂單對賬單
  • 下載資金賬單

支付 2.0 接口改動范圍

  1. 新增關(guān)閉訂單、查詢退款 API ;
  2. 查詢訂單升級:支持開發(fā)者在未收到支付狀態(tài)通知時,主動查詢訂單狀態(tài);同時可通過該接口獲取發(fā)生交易的小程序用戶 openid 、小程序 appkey 、小程序 appid ;
  3. 申請退款升級:簡化退款流程,去掉原接口中「取消核銷」、「請求業(yè)務(wù)方退款審核」步驟,注意取消「請求業(yè)務(wù)方退款審核」,入?yún)r isSkipAudit 需設(shè)為 1 ;

調(diào)起百度收銀臺 swan.requestPolymerPayment

基礎(chǔ)庫 1.8.5 版本開始支持。使用工具調(diào)試時為模擬支付,使用真機(jī)調(diào)試時可查看真實支付結(jié)果。

解釋:百度收銀臺,聚合了多種主流的支付方式,包括:微信、支付寶、度小滿、百度閃付等,方便開發(fā)者一站式快速接入多種支付渠道,讓百度用戶能在智能小程序場景下,直接完成交易閉環(huán),提升用戶支付體驗的同時,提高智能小程序的訂單轉(zhuǎn)化率。

為了幫助小程序開發(fā)者調(diào)用收銀臺接口,我們提供了 Go 語言版本封裝了簽名&驗簽、HTTP 接口請求等基礎(chǔ)功能,詳見下載小程序支付 demo 。

方法參數(shù)

Object 

objectobject 參數(shù)說明:

屬性名 類型 必填 說明
orderInfo Object 訂單信息
success Function 接口調(diào)用成功的回調(diào)函數(shù)
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

orderInfo 參數(shù)說明:

參數(shù) 必填 說明
dealId 跳轉(zhuǎn)百度收銀臺支付必帶參數(shù)之一,是百度收銀臺的財務(wù)結(jié)算憑證,與賬號綁定的結(jié)算協(xié)議一一對應(yīng),每筆交易將結(jié)算到 dealId 對應(yīng)的協(xié)議主體。詳見核心參數(shù)獲取與組裝
appKey 支付能力開通后分配的支付 appKey,用以表示應(yīng)用身份的唯一 ID ,在應(yīng)用審核通過后進(jìn)行分配,一經(jīng)分配后不會發(fā)生更改,來唯一確定一個應(yīng)用。詳見核心參數(shù)獲取與組裝。
totalAmount 訂單金額,單位為人民幣分。
tpOrderId 小程序開發(fā)者系統(tǒng)創(chuàng)建的唯一訂單 ID ,當(dāng)支付狀態(tài)發(fā)生變化時,會通過此訂單 ID 通知開發(fā)者。
dealTitle 訂單的名稱。
signFieldsRange 用于區(qū)分驗簽字段范圍,signFieldsRange 的值:0:原驗簽字段 appKey+dealId+tpOrderId;1:包含 totalAmount 的驗簽,驗簽字段包括appKey+dealId+tpOrderId+totalAmount。固定值為 1 。
rsaSign appKey+dealId+totalAmount+tpOrderId進(jìn)行 RSA 加密后的簽名,防止訂單被偽造。簽名過程見簽名與驗簽
bizInfo 訂單詳細(xì)信息,需要是一個可解析為 JSON Object 的字符串。字段內(nèi)容見: bizInfo 組裝。

代碼示例

<view class="wrap">
    <view class="card-area">
        <button bind:tap="requestPolymerPayment" type="primary" hover-stop-propagation="true">支付0.01元</button>
    </view>
</view>
Page({
    requestPolymerPayment(e) {
        swan.request({
            url: 'https://mbd.baidu.com/xxx', // 僅為示例,并非真實的接口地址,開發(fā)者從真實接口獲取orderInfo的值
            success: res => {
                res.data.data.dealTitle = '百度小程序Demo支付測試';
                let data = res.data;
                if (data.errno !== 0) {
                    console.log('create order err', data);
                    return;
                }

                swan.requestPolymerPayment({
                    orderInfo: data.data,
                    success: res => {
                        swan.showToast({
                            title: '支付成功',
                            icon: 'success'
                        });
                        console.log('pay success', res);
                    },
                    fail: err => {
                        swan.showToast({
                            title: err.errMsg,
                            icon: 'none'
                        });
                        console.log('pay fail', err);
                    }
                });
            },
            fail: err => {
                swan.showToast({
                    title: '訂單創(chuàng)建失敗',
                    icon: 'none'
                });
                console.log('create order fail', err);
            }
        });
    }
});

說明:

  • 服務(wù)審核未通過會導(dǎo)致調(diào)起失敗“商品不存在”等錯誤,需要移步“小程序開發(fā)者平臺->運營管理->支付管理”查看支付服務(wù)的審核狀態(tài);
  • 整個 orderInfo 是個 json 對象;
  • bizInfo 這個鍵值是一個以字符串形式存放的 json 對象;
  • 在調(diào)起收銀臺過程中,如開發(fā)者在任何一個環(huán)節(jié)沒有嚴(yán)格按照文檔要求操作均會導(dǎo)致此“簽名錯誤”,請認(rèn)真閱讀文檔。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號