抖音小程序预约类型融合版提交订单

抖音小程序官方文档
前端 JS API :(https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/api/industry/trading-system/pre-order/create-order )
后端服务端 OpenAPI:(https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/payment/trade-system/trading/refund/apply)

预下单:tt.createOrder
继续支付:tt.continueToPay
退款:tt.applyRefund(我开发的时候前端调不起来,联系抖音客服技术部门他们说让后端调服务端 OpenAPI ,最后前端这块走的接口对接的)

抖音文档有很多都有问题,照着他们文档给的代码示例写,结果还是调不起来,以下是自己跟他们技术客服一点一点对接才完成的功能

在线Json格式化工具:( http://jsonformat.1688kb.com 或 https://www.bejson.com/explore/index_new )

创建订单成功时会自动调起收银台支付

// 下单 handlePlaceOrder() { console.log('商品ID', this.serviceInfo.productId) console.log('下单数量', parseInt(this.submitForm.num)) console.log('商品单价', this.serviceInfo.actualAmount) console.log('预约门店的 poiId', this.serviceInfo.poiId) console.log('预约店铺名称', this.serviceInfo.shopName) console.log('预约门店的外部店铺id', this.serviceInfo.outshopId) console.log('预定开始时间(ms)', new Date(this.startTimes).getTime()) console.log('预定结束时间(ms)', new Date(this.endTimes).getTime()) console.log('总价', this.totalPrice * 100) console.log('下单者电话', this.submitForm.phone) console.log('下单者姓名', this.submitForm.personName) console.log('下单者备注', this.submitForm.comments) console.log('下单者地址信息', this.submitForm.province + this.submitForm.city + this.submitForm.area + this.submitForm.address) tt.createOrder({ skuList: [{ skuId: this.serviceInfo.productId, // sku 商品Id 必传 skuType: 1, // sku 商品类型 必传 1:商品库商品、2:非商品库商品 quantity: parseInt(this.submitForm.num), // 数量 必传 price: this.serviceInfo.actualAmount, // 价格 非商品库 sku 商品必传 goodsInfo: { goodsName: this.serviceInfo.productName, // 商品名称 必填 goodsPhoto: this.rotographsLists[0].filePath, // 商品图片链接 必填 goodsId: this.serviceInfo.productId, // 商品ID 必填 goodsType: 1, // 商品类型 必填 1:商品库商品、2:非商品库商品 // goodsLabels: ["不可退"], // 商品标签 非必填 // dateRule: "", // 使用规则 非必填 }, }, ], bookInfo: { itemBookInfoList: [{ poiId: this.serviceInfo.poiId, // 预约门店的 poiId,必填 shopName: this.serviceInfo.shopName, // 预约店铺名称,必填 outShopId: this.serviceInfo.outshopId, // 预约门店的外部店铺id,必填 goodsId: this.serviceInfo.productId, // 商品id,必填 bookStartTime: new Date(this.startTimes) .getTime(), // 预定开始时间(ms),13位毫秒时间戳,必填 bookEndTime: new Date(this.endTimes) .getTime(), //预定结束时间(ms),13位毫秒时间戳,必填 // bookStartTime: 1732269309000, // 预定开始时间(ms),13位毫秒时间戳,必填 // bookEndTime: 1732269609000, //预定结束时间(ms),13位毫秒时间戳,必填 reservationInfoList: [{ // 留资信息 非必填 name: this.submitForm.personName, // 姓名 非必填 phoneNumber: this.submitForm.phone, // 电话 非必填 // identificationNumber: "xxxxx", // 身份证号 非必填 }, ], }, ], }, payment: { totalAmount: this.totalPrice * 100, // 订单总价 必填 }, contactInfo: { phoneNumber: this.submitForm.phone, // 手机号 非必传 contactName: this.submitForm.personName, // 姓名 非必传 }, note: this.submitForm.comments, // 备注 非必传 callbackData: { addressDetails: this.submitForm.province + this.submitForm.city + this .submitForm.area + this.submitForm.address, notes: this.submitForm.comments }, // 透传数据,开发者自定义字段 非必传 tradeOption: { life_trade_flag: 1, // 0:非融合链路(默认值) 1:走融合链路(标准融合/完全融合) }, // 透传数据,开发者自定义字段 非必传 success: (res) => { const { orderId, outOrderNo } = res; console.log("预下单success res", res); console.log("预下单orderId", orderId); console.log("预下单outOrderNo", outOrderNo); this.douYinOrderId = orderId this.douYinOoutOrderNo = outOrderNo // this.setData({ // orderId, // outOrderNo // }); }, fail: (res) => { const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; if (errLogId) { console.log("预下单失败errNo", errNo); console.log("预下单失败errMsg", errMsg); console.log("预下单失败errLogId", errLogId); } if (orderId || outOrderNo) { console.log("支付失败errNo", errNo); console.log("支付失败errMsg", errMsg); console.log("支付失败orderId", orderId); console.log("支付失败outOrderNo", outOrderNo); } console.log("预下单fail:errNo", errNo); console.log("预下单fail:errMsg", errMsg); }, }); },

创建订单调起收银台支付取消支付或支付失败会生成一个待支付状态订单,继续支付调起收银台

// 调起抖音支付 onClickDouYinOrder() { tt.continueToPay({ orderId: this.detailsData.douyinOrderId, // 内部订单号 outOrderNo: this.detailsData.id, // 外部订单号 2个订单号必填一个 success: (res) => { const { orderId, outOrderNo } = res; console.log("支付success res", res); console.log("支付orderId", orderId, ); console.log("支付outOrderNo", outOrderNo); // 调用接口 this.getDetail() }, fail: (res) => { const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; if (errLogId) { console.log("支付查询订单信息失败errNo", errNo); console.log("支付查询订单信息失败errMsg", errMsg); console.log("支付查询订单信息失败errLogId", errLogId); } if (orderId || outOrderNo) { console.log("支付失败errNo", errNo); console.log("支付失败errMsg", errMsg); console.log("支付失败orderId", orderId); console.log("支付失败outOrderNo", outOrderNo); } console.log('支付fail', res) }, }); },

加价单必须商家接单后才能二次加价

// 加价单 handlePlaceOrder() { this.totalPrice = this.detailsData.addPrice * this.detailsData.quantity console.log('商品ID', this.detailsData.goodsId) console.log('商品名称', this.detailsData.title) console.log('商品主图', this.goodsData.sku_list[0].goods_info.img_url) console.log('下单数量', this.detailsData.quantity) console.log('预约门店的 poiId', this.goodsData.open_book_info.item_book_info_list[0].poi_id) console.log('预约店铺名称', this.goodsData.open_book_info.item_book_info_list[0].shop_name) console.log('预约门店的外部店铺id', this.goodsData.open_book_info.item_book_info_list[0].ext_shop_id) console.log('预定开始时间(ms)', this.startTime) console.log('预定结束时间(ms)', this.endTime) console.log('加项价', this.detailsData.addPrice) console.log('给抖音加项价*100', this.detailsData.addPrice * 100) console.log('总价', this.totalPrice) console.log('给抖音总价*100', this.totalPrice * 100) tt.createOrder({ skuList: [{ quantity: this.detailsData.quantity, // 数量 必传 skuId: this.detailsData.goodsId, // sku 商品Id 必传 skuType: 2, // sku 商品类型 必传 1:商品库商品、2:非商品库商品 price: this.detailsData.addPrice * 100, // 价格 非商品库 sku 商品必传 goodsInfo: { goodsName: this.detailsData.title, // 商品名称 必填 goodsPhoto: this.goodsData.sku_list[0].goods_info.img_url, // 商品图片链接 必填 goodsId: this.detailsData.goodsId, // 商品ID 必填 goodsType: 2, // 商品类型 必填 1:商品库商品、2:非商品库商品 }, extraInfo: { feeType: 3, // 本次加价类型 }, }, ], payment: { totalAmount: this.totalPrice * 100, // 总价 必填 }, tradeOption: { life_trade_flag: 1, // 0:非融合链路(默认值) 1:走融合链路(标准融合/完全融合) order_relation_info: { related_order_id: this.goodsData.item_order_info_list[0] .item_order_id, // 本次加价关联的抖音侧首单订单id relation_type: 'multi_buy_as_one' } }, // 透传数据,开发者自定义字段 非必传 success: (res) => { const { orderId, outOrderNo } = res; console.log("加价单预下单success res", res); console.log("加价单预下单orderId", orderId); console.log("加价单预下单outOrderNo", outOrderNo); this.douYinOrderId = orderId this.douYinOoutOrderNo = outOrderNo // 调用接口 this.getDetail() // this.setData({ // orderId, // outOrderNo // }); }, fail: (res) => { const { orderId, outOrderNo, errNo, errMsg, errLogId } = res; if (errLogId) { console.log("加价单失败errNo", errNo); console.log("加价单失败errMsg", errMsg); console.log("加价单失败errLogId", errLogId); } if (orderId || outOrderNo) { console.log("加价单支付失败errNo", errNo); console.log("加价单支付失败errMsg", errMsg); console.log("加价单支付失败orderId", orderId); console.log("加价单支付失败outOrderNo", outOrderNo); } console.log("加价单fail:errNo", errNo); console.log("加价单fail:errMsg", errMsg); }, }); },

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,884评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,212评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,351评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,412评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,438评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,127评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,714评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,636评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,173评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,264评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,402评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,073评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,763评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,253评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,382评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,749评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,403评论 2 358

推荐阅读更多精彩内容