- updateAppMessageShareData 分享出来是一个链接?
[图片][图片][图片][图片][图片] 这是什么原因呢?
2022-03-22 - 小程序webview组件,小程序和webview交互,小程序内联h5页面,小程序webview内网页实现微信支付
小程序支持webview以后,我们开发的好多h5页面,就可以直接在小程序里使用了,比如我们开发的微信商城,文章详情页,商品详情页,就可以开发一套,多处使用了。我们今天来讲一讲。在小程序的webview里实现微信支付功能。因为微信不允许在小程序的webview里直接调起微信支付。所以我们这节课就要涉及到小程序和webview的交互了。 老规矩先看效果。 因为这里涉及的东西比较多,录gif太多,没法上传,我就录制了一段视频出来。 https://v.qq.com/x/page/t0913iprnay.html 原理 先说下实现原理吧,实现原理就是我们在webview的h5页面里实现下单功能,然后点击支付按钮,我们点击支付按钮的时候会跳转到小程序页面,把订单号,订单总金额,传递到小程序里,然后小程序里使用订单号和订单金额去调起微信支付,实现付款,付款成功或者失败时都会有回调。我们再把对应的回调传递给webview,刷新webview里的订单和支付状态。 一,定义webview显示h5页面 关于webview的使用,我就不做讲解了,官方文档里写的很清楚,用起来也很简单。https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html [图片] webview很简单,就是用一个webview组件,显示我们的网页。 二,定义h5页面 我这里启动一个本地服务器,用来展示一个简单的h5页面。 [图片] 上图是我在浏览器里显示的效果。 接下来我们在小程序的webview里显示这个页面,也很简单,只需要把我们的src定义为我们的本地网页链接就可以了。 [图片] 这里有一点需要注意 因为我们是本地链接,我们需要到开发者工具里把这一项给勾选。 [图片] 三,来看下h5页面代码 [代码]<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>小程序内嵌webview</title> <style> .btn { font-size: 70px; color: red; } </style> </head> <body> <h1>我是webview里的h5页面</h1> <a id="desc" class="btn" onclick="jumpPay()">点击支付</a> <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script> <script> console.log(location.href); let payOk = getQueryVariable("payOk"); console.log("payOk", payOk) if(payOk){//支付成功 document.getElementById('desc').innerText="支持成功" document.getElementById('desc').style.color="green" }else{ document.getElementById('desc').innerText="点击支付" } //获取url里携带的参数 function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return (false); } function jumpPay() { let orderId = Date.now();//这里用当前时间戳做订单号(后面使用你自己真实的订单号) let money = 1;//订单总金额(单位分) let payData = {orderId: orderId, money: money}; let payDataStr = JSON.stringify(payData);//因为要吧参数传递给小程序,所以这里需要转为字符串 const url = `../wePay/wePay?payDataStr=${payDataStr}`; wx.miniProgram.navigateTo({ url: url }); // console.log("点击了去支付", url) console.log("点击了去支付") } </script> </body> </html> [代码] h5代码这里不做具体讲解,只简单说下。我们就是在点击支付按钮时,用当前时间戳做为订单号(因为订单号要保证唯一),然后传一个订单金额(单位分),这里节约起见,就传1分钱吧,花的是自己的钱,心疼。。。。 关键点说一下 1, 必须引入jweixin,才可以实现h5跳转小程序。 <script type=“text/javascript” src=“https://res.wx.qq.com/open/js/jweixin-1.3.2.js”></script> 2,跳转到小程序页面的方法 [代码]const url = `../wePay/wePay?payDataStr=${payDataStr}`; wx.miniProgram.navigateTo({ url: url }); [代码] 这里要和你小程序的页面保持一致。payDataStr是我们携带的参数 [图片] 四,小程序支付页 来看下我们的小程序支付页 [图片] 小程序支付页功能很简单,就是来接收我们h5传过订单号和订单金额。然后去调起微信支付,实现支付。支付成功和支付失败都有对应的回调。 [图片] 支付我们这里实用的小程序云开发来实现的支付,核心代码只有10行。由于支付不是本节的重点,所以这里不做具体讲解。感兴趣的同学可以去看我写的文章和我录的视频 小程序支付文章:https://www.jianshu.com/p/2b391df055a9 小程序支付视频:https://edu.csdn.net/course/play/25701/310742 下面把小程序接收参数和支付的完整代码贴出来给大家 [代码]Page({ //h5传过来的参数 onLoad: function(options) { console.log("webview传过来的参数", options) //字符串转对象 let payData = JSON.parse(options.payDataStr) console.log("orderId", payData.orderId) let that = this; wx.cloud.callFunction({ name: "pay", data: { orderId: payData.orderId, money: payData.money }, success(res) { console.log("获取成功", res) that.goPay(res.result); }, fail(err) { console.log("获取失败", err) } }) }, //微信支付 goPay(payData) { wx.requestPayment({ timeStamp: payData.timeStamp, nonceStr: payData.nonceStr, package: payData.package, signType: 'MD5', paySign: payData.paySign, success(res) { console.log("支付成功", res) //你可以在这里支付成功以后,再跳会webview页,并把支付成功状态传回去 wx.navigateTo({ url: '../webview/webview?payOk=true', }) }, fail(res) { console.log("支付失败", res) } }) } }) [代码] 代码里注释很清楚,这里有一点,就是我们支付成功后,需要告诉h5我们支付成功了,通知h5去刷新订单或者支付状态。 到这里我们就完整的实现了小程序webview展示h5页面,并且做到了h5和小程序的交互,实现了小程序webview的支付功能。 是不是很简单呢。 源码地址 1,关注“编程小石头”公号,回复“webview”即可获取源码 2,也可以到我github下载源码 https://github.com/qiushi123/xiaochengxu_demos [图片]
2019-08-15 - H5通过location.replace调用“https://open.weixin”授权记录没清除
在ios 与安卓都存在的问题:H5通过window.location.replace("https://open.weixin.qq.com/connect/oauth2/authorize?appid")调用登录授权时替换当前页面,但是授权成功后跳到新的页面,然后通过微信的底部的返回或者安卓的返回键返回时,发现原先发起授权的页面还存在。更老一点的微信版本是没问题的。 然后网络上面的解决办法( https://www.ucloud.cn/yun/104001.html )是取巧的,请问这个问题什么时候可以解决呢? [图片]
2020-03-31 - 小程序uploadFile上传到aws s3服务器要Pending很久
- 当前 Bug 的表现(可附上截图) [图片] android pending了3.5分钟才成功。。。 iOS没有这种问题 - 预期表现 - 复现路径 - 提供一个最简复现 Demo
2019-03-08 - JSAPI是否支持在小程序中拉起微信支付
H5接入微信jsapi实现了微信支付功能,在微信公众号嵌入链接,可正常完成支付流程。现将H5用嵌入方式在微信小程序的webview内打开,进入订单,点击去支付,却无法拉起微信支付框,请问小程序内是否支持这种拉起支付方式。通过什么方式改进
2021-11-11 - 微信支付后默认关注公众号与推荐关注公众号规则(已下线)
2021年8月19公告支付后推荐关注公众号功能下线通知https://pay.weixin.qq.com/index.php/public/cms/content_detail?lang=zh&id=122567 推荐关注规则指微信支付内部制定,推荐关注框和默认勾选能否出现的规则和判断逻辑,当前线上生效的逻辑有: 1、刷卡支付默认有推荐关注 2、九宫格业务默认不勾选推荐关注 3、粉丝数大于50W支付金额大于等于10元有默认勾选,小于10元无默认勾选,粉丝数小于50W支付金额大于等于5元有默认勾选,小于5元无默认勾选 4、已经关注的不展示推荐栏 5、服务号未设置头像的在IOS不展示推荐关注栏 6、用户取消过关注的默认不勾选 7、有过取消默认推荐关注标识的,以后不进行默认推荐关注勾选。简单一句话理解:你去美宜佳买一笔,支付后手动取消他的勾选,以后再去饭店吃饭付款后就是没有勾选的。 8、服务商模式的,需要在特约商户开发配置页设置推荐关注APPID,服务商给特约商户自行配置关注了服务商公众号,部分场景下才会展示,仅支持停车场、加油站、高速收费行业场景,完成整改后的电商工具箱的电商服务商,除此以外不会展示关注入口。 9、订阅号目前是不会有默认推荐关注的 10、公众号支付和扫码支付需要5元以上才有推荐关注 11、微信支付四种支付方式:刷卡支付,公众号支付,扫码支付,APP支付,前三种支付方式有默认关注公众号功能,APP支付需要额外申请(APP支付的默认关注目前只对行业的龙头公司才开放申请。)。 12、在服务商模式下,商户需要配置推荐的,需要在特约商户开发配置页设置推荐关注subappid,可配置商户同主体公众号。
2021-08-20 - vue spa单页面应用,在jssdk鉴权ios只有首次鉴权生效,其他页面鉴权无效
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
2021-04-03 - 微信H5 页面可以直接跳转到小程序吗
微信H5 页面可以直接跳转到小程序吗
2018-07-09 - 安卓机上的canvas保存图片不全,并且有时候文字样式错乱
- 当前 Bug 的表现(可附上截图) 安卓机上图片 部分丢失文字有一个不正确(在drawImage函数回调里面加上延迟了) [图片] - 预期表现 在开发者工具上是正常的保存的图片不丢失,文字样式全是正确的 [图片] - 复现路径 - 提供一个最简复现 Demo
2019-05-16