微信支付开发
2016-07-25 14:30
295 查看
微信官方API文档:
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#JSSDK.E4.BD.BF.E7.94.A8.E6.AD.A5.E9.AA.A4
第三发开发【具体实现】
微信公众号 java-SDK
下载地址:
https://codeload.github.com/chanjarster/weixin-java-tools/legacy.zip/master
使用方法:(根据微信官方的api来调用,上面的提供了里面具体的方法)
下面是示例
页面:
step1:引入
step1:引入js
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
step2:引入自己简单封装的分享js---share.js地址http://download.csdn.net/detail/lixld/9585721
step3:微信后台配置授权的url,请求下面的服务,获取到用户信息,并存入session
![](https://img-blog.csdn.net/20160725163113585?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
step4:进入页面后异步调用方法:创建jsapi调用的签名:
【签名成功后,会调用wx.ready(){}方法:在这个方法中拼装share】
![](https://img-blog.csdn.net/20160725160624942?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
step5:进入页面后调用方法getLectureInfo:获取前面session中保存的用户信息:
返回后台拼装的数据对象,在success()方法中调用wxPay;实现微信支付
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#JSSDK.E4.BD.BF.E7.94.A8.E6.AD.A5.E9.AA.A4
第三发开发【具体实现】
微信公众号 java-SDK
下载地址:
https://codeload.github.com/chanjarster/weixin-java-tools/legacy.zip/master
使用方法:(根据微信官方的api来调用,上面的提供了里面具体的方法)
下面是示例
页面:
step1:引入
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <% String path = request.getContextPath(); String basePath = ""; if (request.getServerPort() == 80) { basePath = request.getScheme() + "://" + request.getServerName() + path + "/"; } else { basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; } %> <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="author" content="" /> <meta name="robots" content="index,follow" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> <link rel="stylesheet" type="text/css" href="<%=basePath%>css/owl.carousel.min.css"> <link rel="stylesheet" type="text/css" href="<%=basePath%>css/owl.theme.default.min.css"> <link rel="stylesheet" type="text/css" href="<%=basePath%>css/style.css"> <title>讲座详情</title> </head> <body> <header class="top-banner"> <img src="${imgbasepath }${info.lecture.pic}" /> <aside>${info.lecture.title }</aside> </header> <input type="hidden" id="lectureId" value="${info.lecture.id }"/> <c:choose> <c:when test="${info.isBuy }"> <section class="intro"> <div class="price-2"> <div> ¥<em><fmt:formatNumber type="number" maxFractionDigits="0" value="${info.lecture.price}" /></em>.00 </div> <span>已购买</span> </div> <c:choose> <c:when test="${info.lecture.status == 0 }"> <button class="btn btn-3">已结束</button> </c:when> <c:otherwise> <a href="<%=basePath%>/lecture/howJoin?lectureId=${info.lecture.id}"><button class="btn btn-2" >进群听讲座</button></a> </c:otherwise> </c:choose> </section> </c:when> <c:otherwise> <section class="intro"> <div class="price-1"> <div> ¥<em><fmt:formatNumber type="number" maxFractionDigits="0" value="${info.lecture.price}" /></em>.00 </div> </div> <c:choose> <c:when test="${info.lecture.status == 0 }"> <button class="btn btn-3">已结束</button> </c:when> <c:otherwise> <button id = "pay" class="btn btn-1">立即购买</button> </c:otherwise> </c:choose> </section> </c:otherwise> </c:choose> <main class="cont"> <section> <h4>报名须知</h4> <p>${info.lecture.ticketDescription }</p> </section> </main> <script src="<%=basePath%>js/jquery.min.js"></script> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script type="text/javascript" src="<%=basePath %>/js/share.js"></script> <script type="text/javascript"> var lectureId=$("#lectureId").val(); $.ajax({ type: "post", url: "<%=basePath%>wx/getJsapiSignature", data: { url: "" + window.location }, success: function(msg) { reg(msg); } }); function reg(ret) { wx.config({ debug: false, appId: ret.appid, timestamp: ret.timestamp, nonceStr: ret.noncestr, signature: ret.signature, jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'startRecord', 'stopRecord', 'onVoiceRecordEnd', 'playVoice', 'pauseVoice', 'stopVoice', 'onVoicePlayEnd', 'uploadVoice', 'downloadVoice', 'chooseImage', 'previewImage', 'uploadImage', 'downloadImage', 'translateVoice', 'getNetworkType', 'openLocation', 'getLocation', 'hideOptionMenu', 'showOptionMenu', 'hideMenuItems', 'showMenuItems', 'hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem', 'closeWindow', 'scanQRCode', 'chooseWXPay' ] }); } $(document).ready(function() { $("#pay").click(function() { $.ajax({ type: "post", url: "<%=basePath%>wx/getLecturePayInfo", data: { lectureId: lectureId }, success: function(res) { if (res.flag == 'true') { wxPay(res); } else { alert(res.msg); } }, error: function() { alert("暂时无法支付,请稍后再试"); } }); }); function wxPay(res) { wx.chooseWXPay({ 'timestamp': res.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 'nonceStr': res.nonceStr, // 支付签名随机串,不长于 32 位 'package': res.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) 'signType': res.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' 'paySign': res.paySign, // 支付签名 success: function(res) { location.href="<%=basePath%>/lecture/detail?lectureId=${info.lecture.id}"; }, cancel: function(res) { }, fail: function(res) { } }); } wx.ready(function () { share("堂火热报名!领衔6位献!","原价522元,现只需68元,就可以听9场!足有3场哦!快来报名吧! ","http://mp.weixin.qq.com/s?__biz=MzIxOTA5MTQwNQ==&mid=506114802&idx=1&sn=047d1d6e486631709414e670c0caa915#rd","http://weixin.drcuiyutao.com/img/share.jpg"); }); </script> </body> </html>类文件已经上传到资源中:http://download.csdn.net/detail/lixld/9585708
step1:引入js
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
step2:引入自己简单封装的分享js---share.js地址http://download.csdn.net/detail/lixld/9585721
step3:微信后台配置授权的url,请求下面的服务,获取到用户信息,并存入session
step4:进入页面后异步调用方法:创建jsapi调用的签名:
【签名成功后,会调用wx.ready(){}方法:在这个方法中拼装share】
step5:进入页面后调用方法getLectureInfo:获取前面session中保存的用户信息:
返回后台拼装的数据对象,在success()方法中调用wxPay;实现微信支付
相关文章推荐
- node.js微信公众平台开发教程
- Ruby微信开发的几个开源项目介绍
- C#微信开发(服务器配置)
- PHP微信开发之二维码生成类
- ASP.NET微信开发(接口指南)
- asp.net微信开发(永久素材管理)
- asp.net微信开发(用户分组管理)
- asp.net微信开发(已关注用户管理)
- asp.net微信开发(自定义会话管理)
- asp.net微信开发(消息应答)
- asp.net微信开发(开发者接入)
- asp.net微信开发(高级群发文本)
- asp.net微信开发(高级群发图文)
- 推荐几个开源的微信开发项目
- thinkphp微信开发(消息加密解密)
- 完美利用Yii2微信后台开发的系列总结
- PHP技术开发微信公众平台
- 微信开发的一些问题
- 微信公众账号开发入门准备
- 拼团代付时出现缺少字段问题,添加字段的SQL语句