uniapp公众号跳转小程序支付按钮不显示点击没反应的各种坑解决

这两天用uniapp做公众号,需要跳转到小程序进行支付,网上搜了下使用wx-open-launch-weapp 但是坑太多了,几乎走了一遍。

下面从大到小列出来和解决方案,最后列出我的代码

一,按钮为啥不显示咋解决

官方的demo里 button,一定要定义一个样式:display:block;  或者直接使用图片<image></image>

二,jweixin版本一定是1.6

三,uniapp 使用什么标签 ? 必须是:<script type="text/wxtag-template">  不能是template 那个是h5的

四,签名失败的坑

       官方的php里获取域名是动态获取的当前域名,应该是前端请求页面的域名,不是接口的域名。

       特别注意的是,如果页面有参数 获取签名的网址也需要有。最好是前台传过去当前网址,这个可以通过debug:true来看到错误信息。

五,公众号一定是认证过的服务号 不能是测试号

六,测试一定要打包上线 在手机里测试,其他不行

七,jsApiList里面需要有啥,最好:'wx-open-subscribe', 'wx-open-launch-weapp','updateTimelineShareData', 'chooseImage', 'previewImage'

上面几个问题解决了基本就显示按钮和可以点击了,还有些小问题就是可以通过vconsole查看,注入配置的时候可以通过debug:true来看,这都小事。

下面是我的前后端代码

<template>
	<view class="container">
	<wx-open-launch-weapp
	  id="launch-btn"
	  username="gh_########"
	  :path="path"
	>
	  <script type="text/wxtag-template">
		  <style>
			  .btn{
				  display:block;
				  border:none;
				  width:100%;
				  height:50px;
				  color:#ffffff;
				  font-weight:bold;
				  
				  background-color:#07c261;
				  margin: 0 auto;
			  }
		  </style>
		 <button class="btn"  >立即支付</button>
	  </script>
	</wx-open-launch-weapp> 
</view>
 </template>
<script>
	  //import VConsole from 'vconsole/dist/vconsole.min.js' //import vconsole
 
	export default {
		data() {
			return { 
				path: 'pages/article/index?ordersn=2323223&paymoney=2'
			}
		},
		onLoad(option) {
		    
            //let vConsole = new VConsole(); // 初始化 
		     
			this.path='pages/article/index?ordersn='+option.ordersn+'&paymoney='+option.paymoney;
			var jweixin = require('jweixin-module');
		       //最好是在这里把当前网址传给后台进行签名
			uni.request({
				url: 'https://########/getsdk/index.php',  
				success: result2 => { 
						 jweixin.config({
						 	debug: false,
						 	appId: result2.data.appId,
						 	timestamp: result2.data.timestamp,
						 	nonceStr: result2.data.nonceStr,
						 	signature: result2.data.signature,
						 	// 需要使用的JS接口列表
						 	jsApiList:['wx-open-subscribe', 'wx-open-launch-weapp','updateTimelineShareData', 'chooseImage', 'previewImage'],
						 	// 开放标签,跳转小程序时必填
						 	openTagList: ['wx-open-launch-weapp']
						 });
						 
						 jweixin.ready(function() { 
						         console.log("..1...."); 
						                 
						 });
						 
						 jweixin.error(function(res) {
						 	 console.log("..2....",JSON.stringify(res));
						 });
						 
						 
					} ,
					fail: result3 => {
						uni.showToast({
						 title:" reques terr" 
						});
					}
				});
				
				
			
		},
		methods: { 
			// 监听跳转
				sucFun() {
					console.log('跳转');
				},
				// 监听错误
				errFun() {
					console.log('失败');
				}
		}
	}
</script>
 
 

<style>
.container {
		 
			display: block;
			box-sizing: border-box;
			padding: 30px;
			width: 100%;
			background-color: red;
		 
	}
</style>

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
老规矩,先看本节效果图我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能。核心代码就下面这些一,创建一个云开发小程序关于如何创建云开发小程序,这里我就不再做具体讲解。不知道怎么创建云开发小程序的同学,可以去翻看我之前的文章,或者看下我录制的视频:https://edu.csdn.net/course/play/9604/204528创建云开发小程序有几点注意的1,一定不要忘记在app.js里初始化云开发环境。2,创建完云函数后,一定要记得上传二, 创建支付的云函数1,创建云函数pay三,引入三方依赖tenpay我们这里引入三方依赖的目的,是创建我们支付时需要的一些参数。我们安装依赖是使用里npm 而npm必须安装node,关于如何安装node,我这里不做讲解,百度一下,网上一大堆。1,首先右键pay,然后选择在终端中打开2,我们使用npm来安装这个依赖。在命令行里执行 npm i tenpay安装完成后,我们的pay云函数会多出一个package.json 文件到这里我们的tenpay依赖就安装好了。四,编写云函数pay完整代码如下//云开发实现支付 const cloud = require('wx-server-sdk')cloud.init() //1,引入支付的三方依赖 const tenpay = require('tenpay'); //2,配置支付信息 const config = ;exports.main = async(event, context) => 一定要注意把appid,mchid,partnerKey换成你自己的。到这里我们获取小程序支付所需参数的云函数代码就编写完成了。不要忘记上传这个云函数。出现下图就代表上传成功五,写一个简单的页面,用来提交订单,调用pay云函数。这个页面很简单,1,自己随便编写一个订单号(这个订单号要大于6位)2,自己随便填写一个订单价(单位是分)3,点击按钮,调用pay云函数。获取支付所需参数。下图是官方支付api所需要的一些必须参数。下图是我们调用pay云函数获取的参数,和上图所需要的是不是一样。六,调用wx.requestPayment实现支付下图是官方的示例代码这里不在做具体讲解了,完整的可以看视频。实现效果1,调起支付键盘2,支付完成3,log日志,可以看出不同支付状态的回调上图是支付成功的回调,我们可以在支付成功回调时,改变订单支付状态。下图是支付失败的回调,下图是支付完成的状态。到这里我们就轻松的实现了微信小程序支付功能了。是不是很简单啊,完整的讲解可以看视频。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值