小程序取消IOS虚拟支付解决方案

前因

本来我们的小程序用的好好的,结果突然有一天,微信就把小程序的ios端的虚拟支付给关了。。。坑爹啊!搞的安卓端的可以支付,ios的支付不了。于是就在网上找解决办法。

一说通过app跳转支付,总不能为了个ios的支付再去整个app吧……( ̄▽ ̄)"

二是把虚拟支付搞成实体商品,线下发货。小本经营,搞不起搞不起……ε=ε=ε=(~ ̄▽ ̄)~

三是免费。wqndy……( o=^•ェ•)o ┏━┓

四是通过公众号支付。(o?v?)ノ

那肯定是四没跑了。但是这是第一篇,没有代码!(。^▽^) 还在测试呢

思路

要在公众号支付,其实我们想到的就是使用公众号的H5支付。那么怎么通过小程序到公众号的H5又是个问题。直接用小程序的webview很显然是不行的,是真的不行,试过了(lll¬ω¬)。我们肯定是想通过小程序直接跳转到公众号实现支付,这样体验还稍微,我是说稍微会好点。好吧,不废话,直接说我们的方案。

模板消息

对的对的,小程序端点购买,然后给公众号发一条模板消息,通过模板消息进入到支付界面,实现购买,购买成功之后,点击模板消息再回到小程序。emmm……好吧,我承认这圈子绕的不是一般的大。不知道各位有没有更好的办法(真心求教啊!!!),反正我是没有了。。。为了实现这东西差点没把我绕死。。。

小程序给公众号发模板消息

根据微信公众号官方文档可以看出,https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277,(自己看,懒得截图)像很多参数是可以确定的,不怎么会变的,比如access_token啊,template_id啊,url啊之类的,唯一的一个就是touser(接受者的openid)也就是说我们要在小程序端获取公众号的openid。怎么获取?

公众号静默授权

是的,通过公众号的静默授权。我这不是为了格式美观嘛!(●ˇ∀ˇ●),为啥不是以snsapi_userinfo为scope发起的网页授权呢,因为用户体验啊,你在小程序里面你试试还让用户点下同意登陆xx公众号试试……嗯哼,咋的静默呢,通过webview啊,然后静默授权完之后还能直接回来小程序的上一级页面呢,就是会突然白屏( ̄▽ ̄)",那你就授权页那边加点东西好了,我们就是加了支付的引导页,勉强不会觉得太坑。哦,对,授权,你得先把公众号的授权域名设置好!不然什么都是白搭啊。哦哦,还有小程序的webview自动返回,可以参考官方文档的https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html 的wx.miniProgram.getEnv和wx.miniProgram.navigateBack方法,一个检测环境是不是小程序,一个回退。好的,通过静默授权,我们就拿到了openid了,我们就可以发送模板消息了,好,假设我们发送出去了。。。( ̄︶ ̄) ,然后你会发现其实并没有。为啥?哦哦,用户没关注公众号。哈哈哈哈ヾ(≧▽≦*)o爽不爽~那没关注公众号你肯定发不出去啊,那就存起来呗,先存到数据库,然后引导用户关注,通过用户关注事件推送的消息,你又拿到用户的openid了,然后去数据库查,很显然,肯定是拿最新的一条消息作为再次发送模板消息的参数了,毕竟你也只有一个openid的参数是不是~好,这次真的发送出去了!

公众号

首先你的公众号得申请开发者吧,得配置服务器域名吧,既然要支付,得配置公众号JS安全域名吧,顺便再把业务域名也配置了呗。??,准备就绪!

然后你要写接受事件推送,还是关注事件的推送,然后查库,然后掉发送模板消息接口。

再然后,点击模板消息,模板消息的url参数对应的页面肯定是在JS安全域名对应的网站上的。通过url的上代的参数,可以把订单的一些信息带过来,然后你获取微信JSAPI权限,还要获取JSAPI支付接口参数。看文档https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 照着来就行。支付参数里面有一个需要调公众号统一下单的接口,还是看文档https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 ,啊,终于可以支付了。支付成功之后,关掉页面,然后公众号再推送一条模板消息,然后你一点这个模板消息你就又回到了小程序(参数上面的有说文档地址)。

总结

整个思路大概就是这样。当然中间的过程对我们来说还是挺曲折的,要对公众号做开发者认证,认证了要做支付网页,要做接受事件推送的接口,要申请公众号的微信支付,那么又需要有微信商户号,然后又是一大堆认证,就为了获得商户id和API的key等等等等。好在现在进入测试阶段了。

好,我还专门画了个图

原文地址:https://www.cnblogs.com/zhaoshang/p/9158972.html

时间: 2024-08-30 16:36:37

小程序取消IOS虚拟支付解决方案的相关文章

小程序结合php实现支付功能

小程序结合php实现支付 小程序支付访问文件 payfee.php: include 'WeixinPay.php';$appid='';$openid= $_GET['id'];$mch_id='';$key='';$out_trade_no = $mch_id. time();$total_fee = $_GET['fee'];if(empty($total_fee)) //押金{ $body = "充值押金"; $total_fee = floatval(99*100);} el

微信小程序客服消息之解决方案

小程序自公开发布起就有消息推送功能,但由于张小龙对于微信小程序的定义为极简的生活方式,所以为了避免小程序发送过多的推送消息骚扰用户对于小程序消息推送制定了许多的规则和限制. 一.小程序客服消息的意义: 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 二.小程序把推送消息定义为两大类:模板消息和客服消息 模板消息:后台可以制作消息模板,商户可以将模板消息发送给接受过服务的用户,用户接受过一次服务(以是否产生支付数据为准)

微信小程序 禁止ios页面下拉下滑滚动 出现空白的情况

项目需要做了一个图片拖动指定组件上删除,和排序的功能android测试正常, ios会出现拖动图片页面也跟着下滑的尴尬情况. 查文档下拉刷新配置默认是关闭的,后经查找文档发现在本页面page.json 配置项可通过 { "disableScroll":true }   来禁用页面下拉滚动 不可在全局配置 app.json中配置 disableScroll 设置为 true 则页面整体不能上下滚动:只在 page.json 中有效,无法在 app.json 中设置该项   至此问题解决,

wepy框架开发小程序遇到的node-sass问题解决方案

一.报错图 二.解决方案 主要是windows平台缺少编译环境, 1.先运行: npm install -g node-gyp 2.然后运行cmd:(右键点击:以管理员身份运行) 输入:npm install --global -production windows-build-tools  成功图: 3.在项目根目录下新建一个.npmrc,目的是把国外的npm源指向国内的镜像. 内容: phantomjs_cdnurl=http://cnpmjs.org/downloadssass_binar

微信小程序取消button边框线

先给button定义个class属性 <button class="an"> 按钮 </button> 然后再css上加上 .an::after { border: none; } 原文地址:https://www.cnblogs.com/junyi-bk/p/10600940.html

微信小程序取消分享的两种方式

1. 注释onShareAppMessage函数 Page({ /** * 用户点击右上角分享 */ onShareAppMessage: function () { } }) 2. onload函数中加入wx.hideShareMenu({})函数 Page({ /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { wx.hideShareMenu({ }) }, }) 原文地址:https://www.cnblogs.com/daviddd

分享为小程序添加自动回复消息的5种方法!自动客服功能的微信小程序

如何通过小程序客服消息引导自动关注公众号? 小程序客服自动回复一个图文链接? 小程序客服可以发小程序卡片吗? 小程序客服能像公众号一样设置关键词回复吗? 收到消息时自动回复? 微信小程序新手如何默认自动回复功能 如果你遇到以上问题,请往下看!教大家实现微信小程序客服自动回复消息功能,以帮助我们更好地与客户进行互动. 当我们的小程序接入客服,在小程序前端增加一个客服按钮,用户可以点击按钮主动和我们的客服互动! 但是有个问题,消息那么多,如何才能接待的过来,能否想微信公众号一样自动回复,关键词回复,

php对接微信小程序支付

前言:这里我就假装你已经注册了微信小程序,并且基本的配置都已经好了.注: 个人注册小程序不支持微信支付,所以我还是假装你是企业或者个体工商户的微信小程序,其他的商户号注册,二者绑定,授权,支付开通,就阅读文档吧,这里我先负责实战. 微信小程序支付开发文档: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1 基本流程: 1. 申请商户平台账号 https://pay.weixin.qq.com/in

小程序服务端集成微信支付

摘要: 换取openid->统一下单->发起支付,三步走,其中二次签名比较坑人. 该demo源码已托管到码云:http://git.oschina.net/dotton/lendoo-wx,欢迎下载. 理论上集成微信支付的全部工作可以在小程序端完成,因为小程序js有访问网络的能力,但是为了安全,不暴露敏感key,而且可以使用官方提供的现成php demo更省力,于是在服务端完成签名与发起请求,小程序端只做一个wx.requestPayment(OBJECT)接口的对接. 整体集成过程与JSAP