欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

uniapp實(shí)現(xiàn)微信小程序支付功能 - 新聞資訊 - 云南小程序開(kāi)發(fā)|云南軟件開(kāi)發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開(kāi)發(fā)/軟件開(kāi)發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >

uniapp實(shí)現(xiàn)微信小程序支付功能

發(fā)表時(shí)間:2021-1-4

發(fā)布人:葵宇科技

瀏覽次數(shù):135


我這個(gè)項(xiàng)目是一個(gè)外賣小程序

首先要做支付功能,需要兩個(gè)條件

1.必須是企業(yè),個(gè)人用戶不行
2.去微信支付平臺(tái)提交資料審核

首先封裝網(wǎng)絡(luò)請(qǐng)求
api.js

// 引進(jìn)提示
import {errdata} from 'api/errdata.js'

// GET
let listing = function(urling){
	return new Promise((resolve,reject)=>{
		uni.request({
			url:urling,
			method:'GET',
		})
		.then((res)=>{
			// console.log(res[1])
			uni.showLoading({
				title:'加載中'
			})
			resolve(res[1])
			setTimeout(()=>{
				uni.hideLoading()
			},1000)
		})
		.catch((err)=>{
			let errs = '服務(wù)器錯(cuò)誤 請(qǐng)稍后再試'
			errdata.errlist(errs)
			reject(err)
		})
	})
}

// POST請(qǐng)求
let publicing = function(urling,shopdata){
	return new Promise((resolve,reject)=>{
		uni.request({
			url:urling,
			method:'POST',
			data:shopdata,
		})
		.then((res)=>{
			uni.showLoading({
				title:'加載中'
			})
			// console.log(res[1])
			resolve(res[1])
			setTimeout(()=>{
				uni.hideLoading()
			},1000)
		})
		.catch((err)=>{
			let errs = '服務(wù)器錯(cuò)誤 請(qǐng)稍后再試'
			errdata.errlist(errs)
			reject(err)
		})
	})
}

export{listing,publicing}

errdata.js是一個(gè)錯(cuò)誤提示

// 提示
const errdata = http://www.wxapp-union.com/{
	errlist(err){
		uni.showToast({
			icon:'none',
		    title: err,
		    duration: 3000
		});
	}
}

export{errdata}

request.js是地址

// 公用地址
let url = 'https://meituan.thexxdd.cn/api/'
// 微信支付
let wxpayingurl = `${url}wxpay/wxpaying`

export{wxpayingurl}

然后支付的時(shí)候也分三步,第一步是統(tǒng)一下單

var {log} = console
// 引入提示組件
// post
import {publicing} from '../../api/api.js'
// 地址
import {wxpayingurl} from '../../api/request.js'

這是支付代碼

		//微信支付
		async wxPay() {
			// 提示用戶正在下單,防止用戶多次點(diǎn)擊下單按鈕
			wx.showToast({
				title: '正在下單',
				icon: 'loading',
				duration: 200000,
				mask: true
			})
			//搞定必填參數(shù)
			//客戶信息
			let peopleobj = {
				address: this.addressing.detailInfo,
				name: this.addressing.userName,
				iphone: this.addressing.telNumber
			}
			// 商家標(biāo)識(shí)
			let merchantid = this.MerchantId
			// 截取商家標(biāo)識(shí)字符串
			let ide = this.MerchantId.slice(0, 7)
			// 商家名稱
			let commod = this.nameshop
			// 商家logo
			let logo = this.logo
			//把要發(fā)送到后臺(tái)到數(shù)據(jù)以對(duì)象形式存儲(chǔ)
			let Paymentinfor = {
				type: 'placeOrder',
				peopleobj,
				arrinfo: this.allorder,
				merchantid,
				ide,
				commod,
				logo,
				useropenid: this.openid,
				payment: this.payment
			}
			log(Paymentinfor)
			// es6 :async await:異步編程同步化
			// 第一步:統(tǒng)一下單
			// await:等待
			let Placeorder = await this.placeOrder(Paymentinfor)
			let Payparame = Placeorder.data.datas
			// 第二步:發(fā)起支付
			let wxpay = await this.wxPays(Payparame)
			// 第三步:查詢時(shí)候支付成功
			let paysucc = await this.paySucc(Payparame)
		},

然后是我們的第一步,統(tǒng)一下單

		placeOrder(Paymentinfor) {
			return new Promise((resolve, reject) => {
				publicing(wxpayingurl, Paymentinfor)
					.then((res) => {
						log(res)
						wx.hideToast()
						resolve(res)
					})
					.catch((err) => {
						log(err)
						wx.hideToast()
						reject('支付錯(cuò)誤')
					})
			})
		},

第二步就是發(fā)起支付
在這里插入圖片描述

wxPays(Payparame) {
			return new Promise((resolve, reject) => {
				wx.requestPayment({
					timeStamp: Payparame.time_stamp,
					nonceStr: Payparame.nonceStr,
					package: `prepay_id=${Payparame.prepayId}`,
					signType: 'MD5',
					paySign: Payparame.payauto,
					success: (res) => {
						// log(res)
						resolve(res)
					},
					fail: (err) => {
						log(err)
						reject(err)
						let succ = '取消支付'
						let ico = 'success'
						this.tIps(succ, ico)
					}
				})
			})
		},

第三步是查詢是否支付成功
在這里插入圖片描述

   paySucc(Payparame) {
			return new Promise((resolve, reject) => {
				let data = http://www.wxapp-union.com/{
					type:'paysucc',
					out_trade_no: Payparame.out_trade_no,
					id: Payparame._id,
					merchantid: this.MerchantId
				}
				publicing(wxpayingurl, data)
					.then((res) => {
						log(res)
						let succ = '支付成功'
						let ico = 'success'
						this.tIps(succ, ico)
					})
					.catch((err) => {
						log(err)
						let succ = '支付失敗'
						let ico = 'success'
						this.tIps(succ, ico)
					})
			})
		},

github上有項(xiàng)目地址:

github項(xiàng)目地址:https://github.com/lsh555/meituanwaimai

相關(guān)案例查看更多