国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

字節(jié)小程序交易組件使用指南

這篇具有很好參考價值的文章主要介紹了字節(jié)小程序交易組件使用指南。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言?

通過插件的形式,預先實現(xiàn)了一些頁面模板,例如退款頁模板,小程序開發(fā)者只需要直接引入相應插件,并且遵循插件約定的規(guī)范,與插件之間實現(xiàn)相互通信,即可完成相應的頁面,從而提高開發(fā)效率。

交易系統(tǒng)前端模板在頁面維度上提供了提單頁模板、退款頁模板等,模板的入口是一個pay-button 組件,通過該組件實現(xiàn)從小程序跳轉到前端模板頁面。

目錄

一 、在小程序中引入插件

二、pay-button交易按鈕

屬性說明

bind:pay 說明

bind:refund 說明

bind:applyrefund 說明

bind:getgoodsinfo 說明

bind:placeorder 說明

bind:error 說明

效果示例

Case 1 :mode 為 1 或 不填 (組件的使用模式:已下單)

Case 2 :mode 為 2 (組件的使用模式:立即搶購)

官方代碼示例

Case 1 :mode 為 1 或不填

Case 2 :mode 為 2,立即搶購

三、測試代碼示例

(1)下單(須真機調試否則抓取不到信息)

ttml

?js

(2)訂單詳情?

ttml

js?

四、報錯解決


一 、在小程序中引入插件

修改小程序全局配置文件 package.json 和 app.json。

package.json:

{
  "ttPlugins": {
    "dependencies": {
      // 配置插件名,版本等信息
      "microapp-trade-plugin": {
        "version": "1.1.2",
        "isDynamic": true
      }
    }
  }
}

app.json :

{
  "pages": [
    "pages/index/index",
    // 提單頁
    "ext://microapp-trade-plugin/order-confirm",
    // 退款申請頁配置
    "ext://microapp-trade-plugin/refund-apply",
    // 退款詳情頁
    "ext://microapp-trade-plugin/refund-detail"
  ]
}

二、pay-button交易按鈕

https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/component/industry/trading-system/pay-button

屬性說明

屬性名

類型

默認值

必填

說明

最低支持版本

mode

number

1

組件的使用模式

  • 1:已下單
  • 2:未下單

2.43.0.0

goods-id

string

否(mode?為2,該屬性必傳)

商品id

  • mode?為 2 時,該屬性必傳
  • 商品庫商品傳 spuid,非商品庫商品傳開發(fā)者訂單系統(tǒng)商品號。
  • 字段長度為1~64字節(jié),詳見?Bug & Tip

2.43.0.0

goods-type

number

否(mode?為2時,該屬性必傳)

商品類別,mode?為 2 時,該屬性必傳

  • 1:商品庫商品傳
  • 2:非商品庫商品傳

目前只支持商品庫商品,非商品庫商品需要申請白名單

2.43.0.0

order-status

number

0

已下單場景(mode = 1)下,細分訂單狀態(tài)

  • 0:繼續(xù)支付
  • 1:申請退款
  • 2:退款中
  • 3:退款成功
  • 4:退款失敗

2.43.0.0

order-id

string

開發(fā)者訂單系統(tǒng)的交易訂單號,用于繼續(xù)支付、申請退款

2.43.0.0

refund-id

string

開發(fā)者訂單系統(tǒng)的退款單號,用于查看退款詳情

2.43.0.0

refund-total-amount

number

退款金額

  • 針對交易系統(tǒng)之前的老訂單申請退款,該屬性必傳
  • 單位:分
  • 如何哪些情況下為老訂單,詳見?Bug & Tip

2.43.0.0

biz-line

number

1

否,如果是泛知識類型則必填

業(yè)務線類型

  • 1:團購
  • 2:泛知識

2.54.0.0

marketing-ready

boolean

false

是否配置了營銷擴展點

  • true:已配置營銷擴展點,進行營銷展現(xiàn)并進行營銷優(yōu)惠計算
  • false: 未配置,不展現(xiàn)營銷信息
  • 特別提醒,傳 true 時,必須接入營銷擴展點

2.54.0.0

bind:getgoodsinfo

EventHandle

否(mode?為 2 時,該屬性必傳)

獲取商品信息,mode?為 2 時,該屬性必傳

詳見?bind:getgoodsinfo 說明

2.43.0.0

bind:placeorder

EventHandle

否(mode?為 2 時,該屬性必傳)

跳轉至提單頁前的準備工作

  • mode?為 2 時,該屬性必傳
  • 內容取決于開發(fā)者,但下單需要用戶處于登錄狀態(tài)

詳見?bind:placeorder 說明

2.43.0.0

bind:error

EventHandle

  • 組件傳入屬性異常、組件內部發(fā)生異常時觸發(fā)
  • 具體報錯內容見?bind:error 報錯信息

2.43.0.0

bind:applyrefund

EventHandle

透傳退款參數(shù)

  • 用于申請退款場景
  • 開發(fā)者可以在該方法中,通過返回一個對象,定義一些透傳信息。前端模板會將返回的對象通過?JSON.stringify進行序列化,序列化的字符串會作為申請退款時的 cp_extra 參數(shù),透傳給開發(fā)者服務端。

詳見?bind:applyrefund 說明

2.43.0.0

bind:refund

EventHandle

退款回調

  • 用于申請退款場景
  • 開發(fā)者可以在該方法中,根據(jù)提交退款申請的狀態(tài)返回值,實現(xiàn)開發(fā)者自定義的邏輯

詳見?bind:refund 說明

2.43.0.0

bind:pay

EventHandle

否(mode?為2時,該屬性必傳)

支付回調

  • 用于立即搶購、繼續(xù)支付場景
  • 開發(fā)者可以在該方法中,根據(jù)支付狀態(tài)返回值,實現(xiàn)開發(fā)者自定義的邏輯

2.43.0.0

bind:pay 說明

  • 繼續(xù)支付:
// bind:refund 使用示例
handleContinutePay(event) {
    const { status, outOrderNo, result } = event.detail;
    if (status === 'success') {
        const { code } = result;
        if (code === 0) {
            // 繼續(xù)支付成功
        }
    } else {
        // 繼續(xù)支付失敗
    }
}
  • 立即搶購
    • 當用戶在提單頁點擊「立即支付」按鈕后,會調起小程序收銀臺,當用戶實際完成了支付或選擇關閉收銀臺取消支付,以及預下單接口報錯時,前端模板會調用該方法。
    • 開發(fā)者可以在該方法中,根據(jù)支付返回結果,完成開發(fā)者自定義的邏輯,如跳轉訂單列表頁等。
/**
  * status: 支付狀態(tài),'success' | 'fail'
  * orderId: 抖音交易系統(tǒng)內部訂單號,類型為 string
  * outOrderNo:開發(fā)者系統(tǒng)交易訂單號,類型為 string
  * result: 創(chuàng)建訂單、tt.pay 支付結果,類型為 object
*/
handlePay(event) {
    const { status , orderId , outOrderNo , result } = event.detail;
    if (status === 'success') {
        const { code } = result;
        if (code === 0) {
            // 支付成功
        } else {
            // 支付失?。ǔ瑫r、取消、關閉)
        }
    } else {
        const { errMsg } = result;
    }
}
  • 事件對象的 detail 為 object 類型,屬性如下:

屬性名

類型

說明

最低支持版本

status

string

是否成功拉起小程序收銀臺

  • success:成功
  • fail:失敗

2.43.0.0

orderId

string

抖音交易系統(tǒng)內部訂單號

2.43.0.0

outOrderNo

string

開發(fā)者傳入的開發(fā)者系統(tǒng)交易訂單號

2.43.0.0

result

object

根據(jù)?status?屬性返回支付結果

2.43.0.0

result 屬性說明

object 類型,屬性如下:

  • 當?status?為 success 時:

屬性名

類型

說明

最低支持版本

code

number

  • 0:支付成功
  • 1:支付超時
  • 2:支付失敗
  • 3:支付關閉
  • 4:支付取消
  • 9:訂單狀態(tài)開發(fā)者自行獲取

只要調起收銀臺成功,支付都會回調成功,開發(fā)者依據(jù)返回的 code 值,進行后續(xù)業(yè)務邏輯處理

2.43.0.0

orderId

string

抖音交易系統(tǒng)內部交易訂單號

2.43.0.0

  • 當?status?為 fail 時:

屬性名

類型

說明

最低支持版本

errMsg

string

API 支付錯誤碼

  • 10000: 支付失敗
  • 10001: 調起微信失敗
  • 10002: 微信未安裝

2.43.0.0

bind:refund 說明

// bind:refund 使用示例
handleRefund(event) {
    const { status, result } = event.detail;
    if (status === 'success') {
        const { refundId, outRefundNo } = result;
    } else {
        const { errMsg } = result;
    }
}

事件對象的 detail 為?object?類型,屬性如下:

屬性名

類型

說明

最低支持版本

status

string

發(fā)起申請退款結果

  • 發(fā)起成功:'success'
  • 發(fā)起失敗:'fail'

2.43.0.0

result

object

根據(jù)?status?屬性返回支付結果

2.43.0.0

result 屬性說明

object?類型,屬性如下:

  • 當?status?為 success 時:

屬性名

類型

說明

最低支持版本

refundId

string

抖音交易系統(tǒng)內部退款單號

2.43.0.0

outRefundNo

string

開發(fā)者系統(tǒng)退款單號

2.43.0.0

orderId

string

抖音交易系統(tǒng)內部交易訂單號

2.43.0.0

  • 當?status?為 fail 時:

屬性名

類型

說明

最低支持版本

errMsg

string

失敗錯誤信息

2.43.0.0

bind:applyrefund 說明

需要返回 promise,開發(fā)者可以在 promise 中做退款參數(shù)的設置,并將需要透傳的退款參數(shù)作為返回值傳入 resolve 函數(shù)。

  • 若無需傳入 extra 參數(shù),該方法可不填。
// bind:applyrefund 使用示例
applyRefund(event) {
    const { orderId } = event.detail;
    const extra = { orderId }; // 開發(fā)者需要透傳的參數(shù),可自定義內容
    return new Promise(resolve => {
      resolve(extra);
    });
  },
  • 事件對象的 detail 為?object?類型,屬性如下:

屬性名

類型

說明

最低支持版本

orderId

string

開發(fā)者傳入的開發(fā)者系統(tǒng)交易訂單號

2.43.0.0

指定金額退款

指定金額退時,需要通過 bind:applyrefund 傳入 itemOrderList。

itemOrderList 可和其他透傳參數(shù)一同通過 bind:applyrefund 傳入,可見下方代碼說明

itemOrderList 說明

itemOrderList 是一個長度最少為 1 的數(shù)組,不可傳遞 undefined 或 null。

字段名

類型

是否必傳

描述

最低支持版本

itemOrderId

string

退款的商品單號

2.59.0.3

refundAmount

number

該 itemOrderId 需要退款的金額

  • 單位:分
  • 不能大于該 itemOrderId 實付金額,未填入該字段,則默認為對應子單最大退款金額

2.59.0.3

// bind:applyrefund 指定金額退使用示例
applyRefund(event) {
    const { orderId } = event.detail;
    const itemOrderList = [
            {itemOrderId:'ot423412',refundAmount:100},
            {itemOrderId:'ot423413'},
        ]
    const extra = { orderId , itemOrderList };
    return new Promise(resolve => {
      resolve(extra);// extra 透傳至服務端時,當中的 itemOrderList 會被刪除
    });
  },

bind:getgoodsinfo 說明

  • 需要返回 promise,開發(fā)者可以在 promise 中獲取相關商品信息,并將商品信息作為返回值傳入 resolve 函數(shù)。
// bind:getgoodsinfo 使用示例
// 非商品庫商品
getGoodsInfo(event) {
    const { goodsId } = event.detail;
    return new Promise(resolve => {
      // 在此處開發(fā)者可以進行商品數(shù)據(jù)請求,獲取商品信息
      // 然后將商品信息傳入 resolve 函數(shù)
      resolve({
        currentPrice: 9900,
        goodsName: '循禮門M+丨【釋集烤肉】99元  原價206.4元超值套餐',
        goodsPhoto:
          'https://p11.douyinpic.com/img/aweme-poi/product/spu/c050f399ac447daf2715e11e6976c2e2~noop.jpeg?from=3303174740',
        goodsLabels: [
            {type: 'EXPIRED_RETURNS'}, // 過期退
            {type: 'REFUND_ANYTIME'}, // 隨時退
            {type: 'BOOK_IN_ADVANCE', value: 2} // 提前2日預約
        ],
        minLimits: 1,
        maxLimits: 2,
        dateRule: '周一至周日可用',
        validation: {
            phoneNumber: {
                required: true  // 手機號是否必填, 為 ture則必填,false選填,默認選填
            }
        },
        extra: {}
      });
    });
}

// 商品庫商品
getGoodsInfo(event) {
    return new Promise(resolve => {
        // 在此處開發(fā)者可以進行商品數(shù)據(jù)請求,獲取商品信息
        // 然后將商品信息傳入 resolve 函數(shù)
        resolve({
            minLimits: 1,
            maxLimits: 2,
            dateRule: '周一至周日可用',
            validation: {
                phoneNumber: {
                    required: true  // 手機號是否必填
                }
            }
        });
    })
}
  • 事件對象的 detail 為 object 類型,屬性如下:

屬性名

類型

說明

最低支持版本

goodsId

string

商品 id

2.43.0.0

goodsType

number

商品類型

2.43.0.0

  • 商品信息說明如下:

字段名

類型

默認值

必傳

說明

currentPrice

number

注意:非商品庫商品必傳

商品單價

  • 單位:分
  • 非商品庫商品必傳
  • 價格范圍是 1 - 999999999
  • 必須為整型值,不能為浮點數(shù)

goodsName

string

注意:非商品庫商品必傳

商品名稱

  • 非商品庫商品必傳(特別提醒?Bug & Tip?)
  • 字段長度為區(qū)間值 [1, 256] 字節(jié)(字節(jié)與字符串說明見下方?Bug & Tip)

goodsPhoto

string

注意:非商品庫商品必傳

商品圖片

  • 非商品庫商品必傳
  • 字段長度為 [1, 512] 字節(jié)(字節(jié)與字符串說明見下方?Bug & Tip?)
  • 圖片類型支持 jpg、jpeg、gif、webp

goodsLabels

GoodsLabel[]

商品標簽

  • 最多設置三個標簽
  • 商品庫商品標
  • 詳見?GoodsLabel 類型說明

minLimits

number

1

起購份數(shù)

  • 范圍是 1 - 99999(minLimits與maxLimits關系見?Bug & Tip?)
  • 必須為整型值,不能為浮點數(shù)

maxLimits

number

99999

限購份數(shù)

  • 范圍是 1 - 99999(minLimits與maxLimits關系見?Bug & Tip)
  • 必須為整型值,不能為浮點數(shù)

dateRule

string

周一至周日可用

使用規(guī)則

  • 如 “周一至周日可用”、“周一至周五可用”、“非節(jié)假日可用”
  • 字段長度最大長度為128字節(jié)(字節(jié)與字符串說明見下方?Bug & Tip?)

extra

object

開發(fā)者透傳參數(shù)

  • 上傳服務端時會對extra進行JSON.stringify處理

GoodsLabel 類型說明

object 類型,屬性如下

屬性名

類型

默認值

必傳

說明

最低支持版本

type

string

標簽類別

2.43.0.0

value

number

天數(shù)

  • 取值范圍為 1~99
  • 當 type 為?REFUNDABLE_DAYS?或者?BOOK_IN_ADVANCE?時必傳
  • 必須為整型值,不能為浮點數(shù)

2.43.0.0

type 的合法值

說明

最低支持版本

EXPIRED_RETURNS

過期退

2.43.0.0

REFUND_ANYTIME

隨時退

2.43.0.0

RESERVATION_FREE

免預約

2.43.0.0

REFUNDABLE_DAYS

x 日內可退

2.43.0.0

BOOK_IN_ADVANCE

提前 x 日預約

2.43.0.0

NON_REFUNDABLE

不可退

2.50.0.0

最多設置三個標簽,并且存在以下互斥關系:

  • REFUND_ANYTIME?與?REFUNDABLE_DAYS?互斥,即 “隨時退” 與 “x 日內可退” 互斥。
  • RESERVATION_FREE?與?BOOK_IN_ADVANCE?互斥,即 “免預約” 與 “提前 x 日預約” 互斥。
  • NON_REFUNDABLE?與?REFUNDABLE_DAYS?REFUND_ANYTIME互斥,即 “不可退”與“隨時退” 、 “x 日內可退” 互斥。
  • 只做展現(xiàn)。

bind:placeorder 說明

由于在前端模板中進行下單需要用戶登錄,所以建議在此處完成登錄或提醒用戶打開設置給予相應權限。

需要返回 promise,開發(fā)者可以在 promise 中完成用戶登錄,然后調用 resolve 函數(shù)。

屬性名

類型

說明

最低支持版本

goodsId

string

商品id

2.43.0.0

  • 若無法完成相關邏輯,則一定要觸發(fā) reject 方法,否則可能會導致后續(xù)跳轉失敗。
userLogin(event) {
const { goodsId , goodsType } = event.detail
    return new Promise((resolve, reject) => {
        tt.login({
            success() {
                // 用戶登錄成功并獲取信息,則調用 resolve 函數(shù),跳轉至提單頁
                resolve();
            },
            fail() {
                // 用戶登錄失敗,則跳轉提單頁失敗
                reject();
            }
        });
    });
  },
  • 事件對象的 detail 為 object 類型,屬性如下:

屬性名

類型

說明

最低支持版本

goodsId

string

商品 id

2.43.0.0

goodsType

number

商品類型

2.43.0.0

bind:error 說明

  • 當錯誤發(fā)生時觸發(fā)。
  • 錯誤原因可能是因為必填參數(shù)不合法,服務端請求錯誤等。
// 錯誤信息含義見下文 bind:error報錯信息
handleError(event) {
    const { errMsg ,errNo} = event.detail;
}
  • 事件對象的detail 為 object 類型,屬性如下:

屬性名

類型

說明

最低支持版本

errMsg

string

組件內部錯誤信息,如傳入屬性類型錯誤等

2.43.0.0

<pay-button ... //任意模式下均可使用bind:error bind:error="handleError" />

bind:error 報錯信息

errorHandler(event){
    const { errNo , errMsg } = event.detail
    // do something
    // errNo(錯誤碼,對應某種具體報錯原因)
    // errMsg(報錯信息)
}

errNo(錯誤碼)

含義

21500

mode 非法

21501

goods-id 非法

21502

goods-type 非法

21503

無 bind:getgoodsinfo

21504

無 bind:placeorder

21505

商品庫商品獲取商品信息,服務端內部錯誤

21506

商品庫商品獲取商品信息,服務端校驗參數(shù)不通過

21507

支付能力查詢,服務端內部錯誤

21508

支付能力查詢,服務端校驗參數(shù)不通過

21509

開發(fā)者 bind:getgoodsinfo 調用失敗

21510

開發(fā)者 bind:placeorder 調用失敗

21511

非商品庫商品,商品標簽校驗不通過

21512

bind:getgoodsinfo 傳入數(shù)據(jù)類型錯誤

21513

點擊按鈕后觸發(fā),獲取商品信息中

21514

點擊按鈕后觸發(fā),獲取商品信息失敗

21515

點擊按鈕后觸發(fā),無支付能力

21516

無 bind:pay 方法

21517

創(chuàng)建訂單(預下單),服務端錯誤

21518

訂單數(shù)據(jù)錯誤,無法生成訂單

21521

order-status 非法

21522

order-id 非法

21523

refund-id 非法

21524

訂單為 1.0 版本,但缺少 refund-total-amount

21526

繼續(xù)支付獲取訂單信息失敗,服務端內部錯誤

21527

繼續(xù)支付獲取訂單信息失敗,服務端參數(shù)校驗不通過

21528

申請退款獲取訂單信息失敗,服務端內部錯誤

21529

申請退款獲取訂單信息失敗,服務端參數(shù)校驗不通過

21530

申請退款獲取訂單信息失敗,服務端返回數(shù)據(jù)缺少商品信息

21531

申請退款獲取訂單信息失敗,訂單無可退款訂單,訂單可退份數(shù)等于0

21532

查看退款詳情 獲取退款詳情失敗

21533

bind:applyrefund 調用失敗

21534

bind:applyrefund 返回類型錯誤

21535

申請退款失敗,服務端錯誤

21536

獲取小程序主體名稱失敗,服務端錯誤

21537

查詢退款詳情失敗,服務端錯誤

21546

直跳提單頁userLogin調用失敗

21547

直跳提單頁getExtraInfo調用失敗

10000

支付失敗

10001

調起微信失敗

10002

微信未安裝

效果示例

Case 1 :mode 為 1 或 不填 (組件的使用模式:已下單)

Case

示例

操作效果

order-status為 0 或不填時

字節(jié)小程序交易組件使用指南

?

點擊后拉起收銀臺。

?

字節(jié)小程序交易組件使用指南

order-status?為 1 時

點擊后進入申請退款頁面。

?

字節(jié)小程序交易組件使用指南

order-status?為 2、3、4 時

字節(jié)小程序交易組件使用指南

?

點擊后進入退款詳情頁面。

?

字節(jié)小程序交易組件使用指南

Case 2 :mode 為 2 (組件的使用模式:立即搶購)

根據(jù)?goods-type?商品類別分為:

  • 商品庫商品:
    • 庫存大于 0:根據(jù)商品售賣時段,展示狀態(tài)分為:即將開始立即搶購已結束。
    • 庫存等于 0:展示狀態(tài)為已售罄。
  • 非商品庫商品:
    • 展示狀態(tài):立即搶購。
    • 字節(jié)小程序交易組件使用指南
  • 操作效果:點擊后進入提單頁。
    • 字節(jié)小程序交易組件使用指南

Case 3 :KA 解決方案退款場景

  • 常用于order-status?為 1 的情況:

?

  • 操作效果:點擊后進入申請退款頁面。
  • 字節(jié)小程序交易組件使用指南

官方代碼示例

Case 1 :mode 為 1 或不填

  • 繼續(xù)支付:
<pay-button order-status="{{0}}" order-id="xxx" bind:pay="onContinutePay" />
  • 申請退款:
    • 使用交易系統(tǒng)生成的新訂單:
<pay-button
  order-status="{{1}}"
  order-id="xxx"
  bind:refund="onRefund"
  bind:applyrefund="applyRefund"
/>
    • 對于交易系統(tǒng)之前的老訂單,需傳入 refund-total-amount:
// 示例:老訂單申請退款 200 元
<!--
    使用交易模板 1.0 生成的老訂單,申請退款需要 refudnrefund-total-amount
    若無需傳入 extra 參數(shù),則無需 bind:applyrefund 方法
-->
<pay-button
  order-status="{{1}}"
  order-id="xxx"
  bind:refund="onRefund"
  bind:applyrefund="applyRefund"
  refund-total-amount="{{20000}}"
/>
  • 退款中:
<pay-button order-status="{{2}}" refund-id="xxx" />
  • 退款成功:
<pay-button order-status="{{3}}" refund-id="xxx" />
  • 退款失?。?/li>
<pay-button order-status="{{4}}" refund-id="xxx" />

Case 2 :mode 為 2,立即搶購

<!-- 商品庫商品 -->
<pay-button
  mode="{{2}}"
  goods-type="{{1}}"
  goods-id="xxxx"
  bind:getgoodsinfo="getGoodsInfo"
  bind:placeorder="userLogin"
  bind:pay="onPay"
/>

<!-- 非商品庫商品 -->
<pay-button
  mode="{{2}}"
  goods-type="{{2}}"
  goods-id="xxxx"
  bind:getgoodsinfo="getGoodsInfo"
  bind:placeorder="userLogin"
  bind:pay="onPay"
/>

三、測試代碼示例

(1)下單(須真機調試否則抓取不到信息)

ttml

 <pay-button
      mode="{{2}}"
      goods-type="{{1}}"
      goods-id="xxx"
      bind:getgoodsinfo="getGoodsInfo"
      bind:placeorder="userLogin"
      bind:pay="onPay"
      bind:error="bindError"
    />

?js

Page({
  data: {
    goodId:''
  },
getGoodsInfo(event) {
  return new Promise(resolve => {
    // 在此處開發(fā)者可以進行商品數(shù)據(jù)請求,獲取商品信息
    // 然后將商品信息傳入 resolve 函數(shù)
    resolve({});
})
},
bindError(event){
  const { errNo , errMsg } = event.detail
  console.log('errMsg')
  console.log(event.detail)
  console.log(errMsg)
  console.log(errNo)
},
onPay(event) {
    console.log(event.detail);
    const { status, outOrderNo, result,orderId } = event.detail;
    if (status === 'success') {
        const { code } = result;
        console.log(result);
        if (code === 0) {
            // 繼續(xù)支付成功
            console.log('支付成功');
            setTimeout(() => {
              tt.redirectTo({
                url: `usr://pages/orderDetail/orderDetail?orderId=${orderId}`,
                success: (res) => {
                  console.log("redirectTo調用成功 ", res);
                },
                fail: (res) => {
                  console.log("redirectTo調用失敗 ", res);
                },
              });
            }, 1000)       
        }
    } else {
        console.log('支付失敗')
    }
},
userLogin(event) {
  console.log('用戶登錄');
  console.log(event);
  const { goodsId , goodsType } = event.detail
      return new Promise((resolve, reject) => {
          tt.login({
              success() {
                // 用戶登錄成功并獲取信息,則調用 resolve 函數(shù),跳轉至提單頁
                  resolve();
              },
              fail() {
                  // 用戶登錄失敗,則跳轉提單頁失敗
                  reject();
              }
          });
      });
    },
  onShow(){

  },
  onReady: function () {

  },
  onLoad:function(options){

});

(2)訂單詳情?

ttml

<view class="order_wrap">
    <view class="order_top">
        <view class="title">訂單已支付</view>
        <view class="btn">
       <view tt:if="{{orderOutId}}">
        <pay-button
            order-status="{{1}}"
            order-id="{{orderOutId}}"
            bind:refund="onRefund"
            bind:error="bindError"
            bind:applyrefund="applyRefund"
          />
          <pay-button order-status="{{2}}" refund-id="{{orderOutId}}" />
       </view>
        </view>
    </view>
    <view class="task_list">
        <view class="task_list_l">
          <image src="https://p11.douyinpic.com/img/aweme-poi/product/spu/c050f399ac447daf2715e11e6976c2e2~noop.jpeg?from=3303174740"></image>
        </view>
        <view class="task_list_r">
          <view class="task_rtop">
            <view class="task_list_tit">測試商品</view>
          <view class="task_list_concesson">
          </view>
          <view class="task_rbot" tt:if="{{orderOutId}}"> 
            <view class="rbot_time">orderid:{{orderOutId}}</view>
          </view>
        </view>
      </view>
</view>
<view>
    <consume-card
        order-id="{{orderOutId}}"
        bind:consume="orderChangeHandler"
        bind:refund="onRefund"
        bind:applyrefund="applyRefund"
        bind:error="bindError"
            ></consume-card>
</view>
<view class="apply_shop">
    <view>適用門店(1)</view>
    <view>測試</view>
    <view>營業(yè)時間 11:00-次日00:00</view>
    <view>世紀大廈8層</view>
    <view>商家資質信息展示</view>
</view>
</view>

js?


  Page({
    data: {
      orderInfo:{},
      orderOutId:''
    },
    orderChangeHandler(event){
      const { orderId } = event.detail
      //do something
  },
  bindError(event){
    const { errNo , errMsg } = event.detail
    console.log('errMsg')
    console.log(event.detail)
    console.log(errMsg)
    console.log(errNo)
  },
  // bind:applyrefund 使用示例
  applyRefund(event){
    const { orderId } = event.detail;
    const extra = { orderId }; // 開發(fā)者需要透傳的參數(shù),可自定義內容
    console.log(orderId)
    console.log(111)
    return new Promise(resolve => {
      resolve(extra);
    });
  },
  // bind:refund 使用示例
  onRefund(event) {
      const { status, result } = event.detail;
    console.log(event.detail);
      if (status === 'success') {
          const { refundId, outRefundNo } = result;
          console.log(result);
      } else {
          const { errMsg } = result;
      }
  },
  //核銷訂單后觸發(fā)
  orderChangeHandler(event){
    const { orderId } = event.detail
    //do something
  },


    onLoad: function (options) {
      let that=this
      console.log(options);
    if(options.orderId){
      that.setData({
        orderOutId:options.orderId
      })
      console.log('調用接口');
    }
    }
  })

四、報錯解決

字節(jié)小程序交易組件使用指南

?由于在pay-button組件內部使用的原生跳轉方法不生效,在路徑前加上user://即可

字節(jié)小程序交易組件使用指南

?其他服務端錯誤不做敘述了,有問題可以留言交流文章來源地址http://www.zghlxwxcb.cn/news/detail-415078.html

到了這里,關于字節(jié)小程序交易組件使用指南的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 界面組件Telerik ASP.NET MVC使用指南 - 如何自定義網(wǎng)格過濾

    界面組件Telerik ASP.NET MVC使用指南 - 如何自定義網(wǎng)格過濾

    Telerik UI for ASP. NET MVC擁有使用JavaScript和HTML5構建網(wǎng)站和移動應用所需的70+UI部件,來滿足開發(fā)者的各種需求,提供無語倫比的開發(fā)性能和用戶體驗。它主要是針對專業(yè)級的 ASP.NET開發(fā),通過該產品的強大功能,開發(fā)者可以開發(fā)出功能豐富、適應標準廣泛的響應式應用程序。 在

    2023年04月13日
    瀏覽(23)
  • 構建與應用大數(shù)據(jù)環(huán)境:從搭建到開發(fā)與組件使用的全面指南

    構建與應用大數(shù)據(jù)環(huán)境:從搭建到開發(fā)與組件使用的全面指南

    ??個人主頁:程序員 小侯 ??CSDN新晉作者 ??歡迎 ??點贊?評論?收藏 ?收錄專欄:大數(shù)據(jù)系列 ?文章內容: ??希望作者的文章能對你有所幫助,有不足的地方請在評論區(qū)留言指正,大家一起學習交流!?? 構建和應用大數(shù)據(jù)環(huán)境涉及多個方面,包括環(huán)境搭建、開發(fā)工具

    2024年02月11日
    瀏覽(23)
  • 程序調試利器——GDB使用指南

    程序調試利器——GDB使用指南

    GDB是GNU Debugger的簡稱,其作用是可以在程序運行時,檢測程序正在做些什么。GDB程序自身是使用C和C++程序編寫的,但可以支持除C和C++之外很多編程語言的調試。GDB原生支持調試的語言包含: ?C ?C++ ?D ?Go ?Object-C ?OpenCL C ?Fortran ?Pascal ?Rust ?Modula-2 ?Ada 此外,通過

    2024年02月04日
    瀏覽(19)
  • UniApp微信小程序地圖使用指南

    在UniApp中集成微信小程序的地圖功能,可以為用戶提供位置展示、導航、路線規(guī)劃等豐富的交互體驗。本技術文檔將指導你如何在UniApp微信小程序中集成和使用地圖功能。 確保你已經(jīng)完成了以下環(huán)境準備: 安裝Node.js:確保你的開發(fā)環(huán)境中安裝了Node.js。 安裝HBuilderX:下載并

    2024年04月28日
    瀏覽(104)
  • 微信小程序:Mobx的使用指南

    微信小程序中有時需要進行全局狀態(tài)管理,這個時候就需要用到Mobx.下面我們來看一下在小程序中是如何使用Mobx的 根目錄下新建store文件夾,新建store.js文件

    2024年02月12日
    瀏覽(26)
  • 使用 Docker 進行 Go 應用程序引導指南

    使用 Docker 進行 Go 應用程序引導指南

    在使用 Go 開發(fā) Web 應用程序時,無論是用于 HTTP 還是其他類型的服務,部署到不同的階段或環(huán)境(本地開發(fā)、生產環(huán)境等)都是一個常見的考慮因素。在本文中,我們將探討在 Docker 容器內集成 Golang 棧的方法,這是一個被廣泛采用的方法,并使用 Docker Compose 進行編排。 首先

    2024年01月17日
    瀏覽(35)
  • 用積分商城成功運營小程序的用戶:使用指南與策略

    用積分商城成功運營小程序的用戶:使用指南與策略

    對于開發(fā)者而言,小程序開發(fā)相對更加便捷、低成本,加上以上說的深受用戶喜愛的特性。因此這兩年,很多新的互聯(lián)網(wǎng)產品的開發(fā)都選擇以微信小程序為載體。 然而正是因為小程序開發(fā)的低門檻,也使得小程序市場競爭變得非常激烈。 據(jù)對公開資料進行統(tǒng)計,2021年全網(wǎng)小

    2024年02月02日
    瀏覽(18)
  • LangChain 完整指南:使用大語言模型構建強大的應用程序

    LangChain 是一個強大的框架,可以簡化構建高級語言模型應用程序的過程。 LangChain 是一個強大的框架,旨在幫助開發(fā)人員使用語言模型構建端到端的應用程序。它提供了一套工具、組件和接口,可簡化創(chuàng)建由大型語言模型 (LLM) 和聊天模型提供支持的應用程序的過程。LangChai

    2024年01月20日
    瀏覽(98)
  • 小程序表單校驗uni-forms正確使用方式及避坑指南

    小程序表單校驗uni-forms正確使用方式及避坑指南

    小程序上使用表單理應是很常用,也很必須的功能,因為系統(tǒng)實用了uni-app,所以這時候會用到uni-forms,但使用過程中遇到不少問題。 這邊的需求有3個: 即時校驗(輸入框失焦立即校驗值) 需自定義校驗規(guī)則 需要異步校驗 滿足這3個需求,就能實現(xiàn)絕大部分表單校驗,然而

    2024年01月18日
    瀏覽(38)
  • Kubernetes 的包管理器工具—— Helm 使用指南:打包、安裝和升級 Kubernetes 中的應用程序

    作者:禪與計算機程序設計藝術 Helm 是 Kubernetes 的包管理器工具。Helm 可以幫助用戶管理復雜的 Kubernetes 應用,通過 Charts 來打包、安裝和升級 Kubernetes 中的應用程序。 1.1.1 Helm 安裝 Helm 的下載及安裝方式可以查看 官方文檔。 1.1.2 Helm 操作命令 Helm 提供了多個子命令用于管理

    2024年02月09日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包