WAP调用微信支付https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1

必看:要用WAP版的微信支付,首先你得有腾讯公司的邀请资格   要是没有,那么就不用往下看了,具体请咨询 0755-83768788



公司做的一个购物网站 之前微信版的网站要搬在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页面就能看到


 href="weixin://wap/pay?appid%3Dwx2421b1c4370ec43b%26noncestr%3Dee0456cf9096f19b0b1a5bf6405bfdf8%26

package%3DWAP%26

prepayid%3Dwx2016041510310675dd0b79e80509438698%26

timestamp%3D1460687466%26

sign%3DE9409AE1B77B897D422F661558C7F9C6">立即购买

对 就是这一串代码,写一个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  不然如果用户没有转微信的话会崩掉  


OK 此贴完结  QQ848312526  欢迎讨论



你可能感兴趣的:(博大精深java,wap,支付,webview,微信)