微信小程序云開(kāi)發(fā)微信支付
使用云開(kāi)發(fā)微信支付功能的前提
假定一切條件早已布置好,我們正是步入開(kāi)發(fā)者工具操作
統(tǒng)一下單
此功能在小程序文檔中有較為仔細(xì)的說(shuō)明,甚至官方也貼上了代碼,那我也不多說(shuō),先創(chuàng)建云函數(shù),并起名為pay
// 云函數(shù)代碼
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
const res = await cloud.cloudPay.unifiedOrder({
"body" : "吃鍵盤(pán)的俠客",//商品名稱(chēng)貨商品描述
"outTradeNo" : "1217752501201407033233368018",//訂單號(hào)-唯一性
"spbillCreateIp" : "127.0.0.1",//回調(diào)IP地址,如果沒(méi)有就這樣隨意放
"subMchId" : "1900009231",//微信支付商戶號(hào)
"totalFee" : 1,//支付金額 單位分
"envId": "test-f0b102",//云開(kāi)發(fā)環(huán)境
"functionName": "pay_cb",//回調(diào)云函數(shù)--沒(méi)有可以亂填
})
return res
}
接著為頁(yè)面編撰一個(gè)按鍵我就一次寫(xiě)了三個(gè)按鍵:統(tǒng)一支付、訂單查詢、申請(qǐng)退票
小程序端代碼
/**
* 頁(yè)面的初始數(shù)據(jù)
*/
data: {
timeStamp: "",//存放支付單號(hào)
tk:"" //存放退款單號(hào)
},
//支付
paygo() {
var timeStamp = "1999" + new Date().getTime()
//這里使用時(shí)間戳精確到毫秒的方式保證單號(hào)的唯一性,前面的1999也是為了保證唯一性的確保
console.log(timeStamp)
this.setData({
timeStamp: timeStamp
})
wx.cloud.callFunction({
name: 'pay',//函數(shù)名
data: {
orderid: timeStamp,//傳遞單號(hào)
},
success: res => {
console.log("獲取支付參數(shù)成功", res)
const payment = res.result.payment
//調(diào)起支付
wx.requestPayment({
...payment,
success(res) {
console.log('支付成功', res)
},
fail(res) {
console.error('支付失敗', res)
}
})
},
fail: res => {
console.log("獲取支付參數(shù)失敗", res)
},
})
},
療效圖:
這就是一個(gè)坑,所以我們須要特殊加一個(gè)查詢訂單處理
查詢訂單
先創(chuàng)建云函數(shù),并起名為
代碼十分少
// 云函數(shù)代碼
const cloud = require('wx-server-sdk')
cloud.init({
env: 'yuelnn-corporation-vu94n'
})
exports.main = async (event, context) => {
const res = await cloud.cloudPay.queryOrder({
"out_trade_no" :event.trade,//商戶訂單號(hào)
"nonce_str" : "" +new Date().getTime(),//隨機(jī)字符串,這里也是采用時(shí)間戳精確到毫秒,人家要我們傳隨機(jī)字符串,我們就這么給他一個(gè)吧
"sub_mch_id" : "1562576291",//子商戶號(hào),也就是商戶號(hào)啦,沒(méi)區(qū)別的
})
return res
}
小程序端:
//訂單查詢
queryOrder() {
wx.cloud.callFunction({
name: 'queryOrder',
data: {
trade: this.data.timeStamp//訂單號(hào),就是剛才支付的時(shí)候我們自己生成的訂單號(hào),注意聯(lián)系上下文理解
},
success: res => {
console.log("獲取查詢參數(shù)成功", res)
},
fail: res => {
console.log("獲取查詢參數(shù)失敗", res)
},
})
},
療效圖:
如須要曉得更多數(shù)組所表示的意思請(qǐng)移步官方文檔,我猜大家也用不到
申請(qǐng)退票
在貼代碼前,我再指出一次,申請(qǐng)退票必須在控制嘉義的設(shè)置,全局變量里獲得了退貨API權(quán)限
如何做我在文中都有說(shuō)到,over
假定你已然授權(quán)了,那我們開(kāi)始吧
先創(chuàng)建云函數(shù),并起名為
這兒出現(xiàn)了一個(gè)新的數(shù)組,俺們不看文檔了,直接聽(tīng)我的解釋?zhuān)褪歉Ц兜臅r(shí)侯一樣生成一個(gè)惟一的單號(hào)(都是俺們自己生成的,我都是采用時(shí)間戳來(lái)保證惟一),這兒的就是退貨單號(hào),這個(gè)()退貨單號(hào)對(duì)應(yīng)你所申請(qǐng)退票時(shí)侯的一個(gè)金額,假定我的數(shù)值
“”:“”,//商戶退貨單號(hào)惟一的
“”:,//商戶訂單號(hào),剛剛支付時(shí)侯的對(duì)應(yīng)那筆單號(hào)
“”:“”+newDate().(),//隨機(jī)字符串
“”:“”,//子商戶號(hào)
“”:100,//訂單金額
“”:50,//申請(qǐng)退票金額
從上數(shù)值可以發(fā)覺(jué),我申請(qǐng)退票的金額可以大于所支付的總金額,也就彰顯了分批退貨的可行性
這么那次退貨單號(hào)就代表了當(dāng)退貨的信息ID,可以通過(guò)查詢訂單查詢到退貨信息。額…可能我講的也不乍地,那你們還是lookalook文檔吧
貼代碼:
// 云函數(shù)代碼
//申請(qǐng)退款
const cloud = require('wx-server-sdk')
cloud.init({
env: 'yuelnn-corporation-vu94n'
})
exports.main = async (event, context) => {
const res = await cloud.cloudPay.refund({
"out_refund_no" : event.refund,//商戶退款單號(hào)
"out_trade_no" : event.trade,//商戶訂單號(hào)
"nonce_str" : ""+new Date().getTime(),//隨機(jī)字符串
"sub_mch_id" : "1562576291",//子商戶號(hào)
"total_fee" : 1,//訂單金額
"refund_fee": 1,//申請(qǐng)退款金額
})
return res
}
小程序端:
//退款
refund() {
var tk = "T1999" + new Date().getTime()
this.setData({
tk:tk
})
console.log("退款單號(hào)",tk)
wx.cloud.callFunction({
name: 'refund',
data: {
refund: tk ,//商戶退款單號(hào)
trade: this.data.timeStamp,//商戶訂單號(hào)
},
success: res => {
console.log("獲取退款參數(shù)成功", res)
},
fail: res => {
console.log("獲取退款參數(shù)失敗", res)
},
})
},
療效圖:
馬上退貨到賬的微信下單系統(tǒng)微信下單系統(tǒng),十分快。
常見(jiàn)問(wèn)題總結(jié):沒(méi)有填寫(xiě)正確商戶號(hào)數(shù)組的和int弄錯(cuò),會(huì)報(bào)參數(shù)格式錯(cuò)誤退貨API沒(méi)授權(quán)也去搞云開(kāi)發(fā)退貨、長(zhǎng)得沒(méi)我好看不會(huì)還不加我微信的:
免責(zé)聲明:部分文章信息來(lái)源于網(wǎng)絡(luò)以及網(wǎng)友投稿,本站只負(fù)責(zé)對(duì)文章進(jìn)行整理、排版、編輯,出于傳遞更多信息之目的,并不意味著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,如本站文章和轉(zhuǎn)稿涉及版權(quán)等問(wèn)題,請(qǐng)作者在及時(shí)聯(lián)系本站,我們會(huì)盡快為您處理。
- 鄉(xiāng)村小鎮(zhèn)外賣(mài)騎手的故事:互聯(lián)網(wǎng)快車(chē)下的新生活與兼職收入
- 掃碼點(diǎn)餐成電子時(shí)代新常態(tài),消費(fèi)者體驗(yàn)與隱私保護(hù)需平衡
- 了解外賣(mài)平臺(tái)發(fā)展前景后,作者發(fā)表看法,技術(shù)推動(dòng)平臺(tái)升級(jí)
- 同城活動(dòng)報(bào)名系統(tǒng):連接你我,開(kāi)啟無(wú)限可能
- 校園外賣(mài)_配送系統(tǒng):打造本地智慧生活服務(wù)的專(zhuān)業(yè) SaaS 系統(tǒng)
- 外賣(mài)小程序開(kāi)發(fā)攻略:從需求明確到平臺(tái)選擇,全方位指南
熱門(mén)資訊
- 美團(tuán)外賣(mài)的抽成規(guī)則 餓了么抽點(diǎn)比例是多少
- 外賣(mài)好評(píng)30字有哪些 常見(jiàn)的外賣(mài)評(píng)語(yǔ)大全
- 木屋燒烤價(jià)目表一覽 微信外賣(mài)訂餐系統(tǒng)推薦
- 海底撈排隊(duì)取號(hào)微信是多少 海底撈是怎么預(yù)約排隊(duì)
- 如何通過(guò)微信掃碼支付找到支付人微信號(hào)?看這里!
- 胡桃里消費(fèi)人均大概是多少錢(qián) 二維碼掃碼點(diǎn)餐系統(tǒng)哪個(gè)好用
- 美團(tuán)外賣(mài)怎么點(diǎn)兩份?步驟及注意事項(xiàng)!!
- 肯德基優(yōu)惠券怎么獲得 肯德基微信外賣(mài)怎么點(diǎn)
- 連鎖收銀系統(tǒng)對(duì)連鎖門(mén)店運(yùn)營(yíng)會(huì)有怎么樣的影響?
- 微信公眾號(hào)點(diǎn)餐是怎么實(shí)現(xiàn) 餐飲商家怎么制作外賣(mài)訂餐系統(tǒng)