前因

本来我们的小程序用的好好的,结果突然有一天,微信就把小程序的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安全域名吧,顺便再把业务域名也配置了呗。

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

  1. h5内嵌微信小程序,调用微信支付功能

    在小程序中不能使用之前在浏览器中配置的支付功能,只能调用小程序专属的api进行支付. 因为需要在现在实现的基础上,再添加在小程序中调用微信支付功能,所以我的思路是这样的 1.在点击支付按钮时,判断是不 ...

  2. 微信小程序中实现微信支付

    最近在做微信小程序,今天刚好做到小程序里的微信支付这块,踩过不少坑,特此写个博客记录下,希望能帮到其它人吧. 我总结了一下,小程序中的微信支付和之前其它的公众号里的微信支付有两个区别,第一就是小程序必 ...

  3. 小程序Promise不支持finally解决方案

    小程序Promise不支持finally解决方案 代码片段 点击链接即可在微信开发者工具中查看代码wechatide://minicode/t2eidemj7P3X git地址 基本思路 小程序的Pr ...

  4. 小程序webview涉及的支付能力、选用绑定多商户支付

    小程序webview涉及的支付能力.选用绑定多商户支付 webview承接页面涉及的支付能力: 仅支持小程序本身支付能力,不支持承接页面内的原支付功能(譬如,webview中嵌入了h5官方商城,经过配 ...

  5. 小程序完整对接 pingpp支付

    小程序完整对接 pingpp支付 有几个先要条件: 小程序需要企业认证且开通支付功能,个人认证是无法使用支付功能的(小程序微信支付官网) pingpp 本身接入的企业服务器(即商户服务器)并不强制要求 ...

  6. 微信小程序在ios下Echarts图表不能滑动的解决方案

    问题现象 这个问题的现象说起来很简单. 小程序页面中有一篇很长的文章,内部有一个Echarts图表,手指上下滑动观看内容. 但是手指滑动区域在Echarts图表上时,页面却不能滑动了. 如下图: 追踪 ...

  7. 微信小程序中涉及虚拟产品购买,ios暂不支持的相关整理意见

    这个东西呢也不能怪微信小程序,属实苹果搞的事情,那怎么小程序相关内容去通过审核呢? 首先我们要搞清楚哪些属于虚拟商品:如某某书币,某某会员,或者是提前编辑好的网课,文档等都属虚拟商品购买,简言之就是没 ...

  8. 微信小程序开发之微信支付

    微信支付是小程序开发中很重要的一个环节,下面会结合实战进行分析总结 环境准备 https服务器 微信小程序只支持https请求,因此需要配置https的单向认证服务(请参考 另一篇文章https受信证 ...

  9. 微信小程序中的微信支付js代码和流程详解

    微信支付流程 步骤 (一)获取用户的信息 (二)统一下单(返回的prepay_id用于第(三)步的请求参数) (三)发起支付请求 操作(这边假设你已经获得了用户的openId) (一).获取用户ope ...

随机推荐

  1. js奥义:原型与原型链(2)

    回顾:上一篇讲了原型对象与prototype和__proto__(传送门 )三者之间的关系 三:constructor constructor [kənˈstrʌktə(r)] :构造器,  这是子类 ...

  2. 使用 Nginx 搭建静态资源 web 服务器

    在搭建网站的时候,往往会加载很多的图片,如果都从 Tomcat 服务器来获取静态资源,这样会增加服务器的负载,使得服务器运行 速度非常慢,这时可以使用 Nginx 服务器来加载这些静态资源,这样就可以 ...

  3. 第三篇 Flask中的request

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的,下面我们来了解一下Flask的request中都有什么东西 from flask import request 1 ...

  4. 一 :Mysql基础

    1.Mysql初识 三高角度引入 三高:高并发,高可用,高性能. why: 1.1数据文件和程序不应该放在同一台机器上!一旦机器挂了,数据和程序全都挂了不能对外提供服务,高可用性差. 1.2纵向扩展有 ...

  5. 学习笔记26_MVC前台强类型参数

    *一般在MVC中,aspx后台要往前台传递参数,使用ViewData["Key"] = obj; 前台就要 <%=(ViewData["key"] as ...

  6. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  7. PHP、 Ruby、Python、Java、C++、C、Objective C——编程语言之禅

    PHP是你豆蔻年华时的心上人,她是情窦初开的你今年夏天傻乎乎追求的目标.玩一玩可以,但千万不要投入过深,因为这个“女孩”有严重的问题. Ruby是脚本家族中一个非常漂亮的孩子.第一眼看她,你的心魄就会 ...

  8. python经典面试算法题1.2:如何从无序链表中移除重复项

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [蚂蚁金服面试题] 难度系数:⭐⭐ ...

  9. PHP根据ip获取地理位置(通过高德地图接口)

    PHP根据ip获取地理位置(通过高德地图接口)<pre>//restapi.amap.com/v3/ip?key=2004f145cf3a39a72e9ca70ca4b2a1dc& ...

  10. SSM整合相关试题

    1.下列关于Spring自动装配的说法中,错误的是() A 在Spring配置文件中,可以通过<bean>元素的autowire属性指定自动装配方式 B autowire属性值可以设置为n ...