uniapp 小程序支付功能

项目需求

项目生成订单,需要用户通过小程序进行支付。

解决方案

使用uni.requestPayment(),调用小程序中的付款功能。


<script>
	export default {
		data() {
			return {
				request:{
          id:xxxxx,
          info:'xxxx'
        }
			}
		},
		onLoad() {

		},
		methods: {
			// 提交订单
			subOrder() {
        this.post("api/order/createOrder", this.request).then(res => {
					if (res.code == 0) {
						// 得到订单的反参调用微信支付
						let pay = JSON.parse(res.data.prepayId);
						uni.requestPayment({
							timeStamp: pay.timeStamp,
							nonceStr: pay.nonceStr,
							package: pay.package,
							signType: pay.signType,
							paySign: pay.paySign,
							// 支付成功的回调
							success(result) {
								console.log(result)
								if (result.errMsg == "requestPayment:ok") {
									uni.showToast({
										icon: "success",
										title: "购买成功!"
									})
							 }

							},
							// 支付失败回调
							fail(err) {
								uni.showToast({
									icon: "none",
									title: "支付失败"
								})
							}
						})
					}
				});
      }
		}
	}
</script>

参数名类型说明
providerString服务提供商,通过 uni.getProvider 获取。
orderInfoString/Object订单数据
timeStampString时间戳
nonceStrString随机字符串,长度为32个字符以下。
packageString统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=xx。
signTypeString签名算法,暂支持 MD5。
paySignString签名,具体签名方案参见 微信小程序支付文档
bannedChannelsArray需要隐藏的支付方式,详见 百度小程序支付文档
serviceNumber固定值:1(拉起小程序收银台)开发者如果不希望使用字节跳动小程序收银台,service设置为3/4时,可以直接拉起微信/支付宝进行支付:service=3: 微信API支付,不拉起小程序收银台;service=4: 支付宝API支付,不拉起小程序收银台。其中service=3、4,仅在1.35.0.1+基础库(头条743+)支持
_debugNumber仅限调试用
getOrderStatusFunction商户前端实现的查询支付订单状态方法(该方法需要返回个Promise对象)。 service=3、4时不需要传。
successFunction接口调用成功的回调
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

点赞 评论 收藏 ~~ 有疑惑的小伙伴,可能是我表达不清楚,可以留言讨论,如有错误,也希望大家不吝指出。 ~~ 点赞 评论 收藏
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在app小程序中进行支付的步骤如下: 1. 首先,获取支付参数,具体获取方式根据业务场景不同而定,可以通过调用后端接口获取支付参数。 2. 调用微信小程序的requestPayment API或uni.requestPayment API来调起微信支付。在uniapp中使用uni.requestPayment API,通过传递支付参数来进行支付。 3. 在支付成功或失败的回调函数中,可以添加相应的业务逻辑。 具体代码如下所示: ```javascript // 调用后端接口获取支付参数 saveReserve(params).then(data => { const { errno, errmsg, res } = data; // res为调起微信支付所需参数 if(errno === '0') { // 调起微信支付 uni.requestPayment({ provider: 'wxpay', // 服务提供商 timeStamp: res.weChatPayData.timestamp, // 时间戳 nonceStr: res.weChatPayData.noncestr, // 随机字符串 package: res.weChatPayData.package, // 支付参数 signType: res.weChatPayData.signtype, // 签名算法 paySign: res.weChatPayData.sign, // 签名 success: function (res) { console.log('支付成功',res); // 业务逻辑... }, fail: function (err) { console.log('支付失败',err); } }); } }).catch(err => { console.log(err); }); ``` 需要注意的是,进行uniapp小程序支付前,需要确保已申请小程序的appid,并在生成签名时填写正确的appid。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [uniapp小程序微信支付功能](https://blog.csdn.net/lwx931449660/article/details/122530586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shaoin_2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值