公司做的一个购物网站 之前微信版的网站要搬在webView上   可是微信支付是个问题 , 在外部浏览器怎么都发不起微信请求 , 原因是因为页面调用的微信浏览器自带JSAPI

在外部浏览器无法调用,但是看见京东的可以直接在触屏版调用微信支付好生羡慕,百度了2天之后找到一个页面 是一个WAP版的调用微信支付,但是微信官方并没有出示此类文档!

出来类似效果参考京东手机网页版的微信支付模块

案例地址: http://wxpay.weixin.qq.com/pub_v2/pay/wap.v2.php

文档地址: https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1

直接把a标签放在页面里,地址改掉  果然可以调用微信支付了  

为了防止微信软和谐 , 我把页面代码保存起来 获取以后能用到!

代码块直接粘上,需要用直接复制到空白的html页面就能看到

<a class="btn-blue" id="getBrandWCPayRequest"
href="weixin://wap/pay?appid%3Dwx2421b1c4370ec43b%26noncestr%3Dee0456cf9096f19b0b1a5bf6405bfdf8%26

package%3DWAP%26

prepayid%3Dwx2016041510310675dd0b79e80509438698%26

timestamp%3D1460687466%26

sign%3DE9409AE1B77B897D422F661558C7F9C6">立即购买</a>

对 就是这一串代码,写一个html静态页面放进去用用手机打开试试,果然就能拉起微信支付

那么我们要做的就是修改上面红色部分的参数 (注意?=& 这三个字符的URLEncode后对应的)

到了这一步的时候发现参数跟原来网站接入的参数对不上,怎么办呢 这个时候我们就要用到上面的文档了

飞机票:https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_4

感觉微信的文档从来都没有这么详细过啊  小小吐槽一下微信现在的文档

PS:WAP支付的权限只能通过腾讯内部邀请才能过的(非常重要),如果腾讯不认识人,果断放弃吧,竹篮打水!

if(!腾讯认识人){

return false;

}

好了 ,参数修改完成之后再浏览器就可以支付成功了

PS: 一定要上到真实的环境去测试 ,不然不会生成预支付单号(接入过微信支付的童鞋应该都知道流程)

跟老大半夜两点在远程服务器上测试了半天 ,终于搞定

第一次写博客 不会分类  也没看

改了之后又遇到一个问题  网页在浏览器可以直接打开微信支付 可是放在webView中点击不会打开  原因找到是因为webView设置了setWebViewClient()方法  但是不设置的话webView直接去调用外部浏览器了 ,然后重写一下shouldOverrideUrlLoading方法  具体如下

public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("http:") || url.startsWith("https:")) {
return false;
}

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}

PS:这里要做一个Try  不然如果用户没有转微信的话会崩掉

http://blog.csdn.net/xcb848312526/article/details/51161015

WAP调用微信支付https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1的更多相关文章

  1. 微信H5支付 在其他浏览器调用微信支付

    微信H5支付的相关资料不是很多.不过步骤上来说不是很复杂 比公众号支付简单很多. 先上官方文档吧 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapt ...

  2. 非微信内如何调起wap版微信支付

    微信支付一直没有出wap版,wap版想用微信支付,只有在微信内调用才可以.今天偶然发现,中国电信一个wap站点, 不在微信内也能调起微信支付,而且官方还提供了一个demo. WAP怎么调起客户端? 在 ...

  3. 微信公众号内H5调用微信支付国内服务商模式

    最近在折微信公众号内H5用JSAPI调用微信支付,境内服务商版支付,微信支付给出的官方文档以及SDK不够详细,导至我们走了一些弯路,把他分享出来,我这边主要是用PHP开发,所以未加说的话示例都是PHP ...

  4. 微信小程序调用微信支付

    1,首先我们先缕清支付的整个流程,详见https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3,第一 ...

  5. 微信小程序调用微信支付接口

    本文链接:https://blog.csdn.net/u012667477/article/details/80940578前言:应项目要求,需要使用微信小程序做支付,写完后告知手续费太高方案不予通过 ...

  6. 前端如何在h5页面调用微信支付?

    在微信服务号开发的时候经常会遇到微信支付的功能实现,通过实际经验自己总结了一下,前端在H5页面调起微信支付有两种办法,一是利用内置对象,二是通过引用微信的js sdk,亲测都能支付成功,从写法上来看用 ...

  7. 微信小程序 不在以下合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html

    微信小程序  不在以下合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html 友情提示: 大家 ...

  8. 微信开放平台--》网站应用开发 微信登录网站接口(https://open.weixin.qq.com/)

    地址:https://open.weixin.qq.com/ 手册:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&am ...

  9. 微信支付HTTPS服务器证书验证指引

    1. 背景介绍 2. 常见问题 3. 验证证书 4. 安装证书 背景介绍 微信支付使用HTTPS来保证通信安全, 在HTTPS服务器上部署了由权威机构签发的证书, 用于证明微信支付平台的真实身份. 商 ...

随机推荐

  1. Javascript中setTimeout()的用法详解

    1.SetTimeOut()       1.1 SetTimeOut()语法例子       1.2 用SetTimeOut()执行Function       1.3 SetTimeout()语法 ...

  2. PHP比较运算!=和!==

    PHP!=和!==的区别 !==是指绝对不等于,比如,$a = 3, $b="3" 那么,$a!==$b成立,可是$a!=$b不成立:

  3. ThreadLocal实现线程范围内共享

    线程范围内共享,即是对相同一段代码,在不同的模块调用时使用一份数据,而在另外一个线程中又使用另外一份数据. ThreadLocal使用set方法为一个新的线程增加一条记录,key是各自的线程,valu ...

  4. linux(centos6.5 i386)安装mysql5.6源码包

    在开始安装前,先说明一下mysql-5.6.4与较低的版本在安装上的区别,从mysql-5.5起,mysql源码安装开始使用cmake了,因此当我们配置安装目录./configure --perfix ...

  5. Struts2的异常处理

    Struts2的异常处理 1.异常处理机制(1)发送请求到控制器(Action); (2)Action出现异常后,依照所捕捉的不同异常转入不同的视图资源. 2.异常捕捉 (1)在Action的处理逻辑 ...

  6. 2016年2月18日 JAVA基础

    运行JAVA之前,必须将系统环境变量进行配置. 如果是32位的计算机安装的JDK版本必须是32位的,如果是64位的计算机安装的JDK版本必须是64位的,两者不可忽视,以免程序无法正常启动. 具体更改方 ...

  7. c++ stl string char* 向 string 转换的问题

    请看下面代码 string AddString(const string& a,const string & b) { return a + b; } int _tmain(int a ...

  8. Javascript this指针

    Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.   前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对 ...

  9. sql 基础练习题

    select * from Student;select * from Courseselect ;select* from Teacherselect ;select * from SC;--创建测 ...

  10. SQL行转列

    目的:将相同条件的多行值合并到同一列, 1.创建测试表: CREATE TABLE [dbo].[TB_01]( ) NULL, ) NULL, [SDATE] [datetime] NULL ) O ...