nodejs 微信支付
2015-04-23 10:23
495 查看
微信支付要在微信公众平台配置 微信授权目录和微信回调目录
微信授权目录 是你支付时收集支付数据的目录,只有授权目录才能支付。
微信支付之前要进行用户授权
router.js
支付付款页面
pay.html
微信授权目录 是你支付时收集支付数据的目录,只有授权目录才能支付。
微信支付之前要进行用户授权
router.js
var express = require('express'); var router = express.Router(); var OAuth = require('wechat-oauth'); var client = new OAuth(config.wx_appid, config.wx_secret); var middleware = require('wechat-pay').middleware; var Payment = require('wechat-pay').Payment; var initConfig = { partnerKey: config.wechat.partnerKey, appId: config.wechat.appId, mchId: config.wechat.mchId, notifyUrl: "http://xxxxxxxxxxxxxx/notify/", pfx: fs.readFileSync("apiclient_cert.p12") }; var payment = new Payment(initConfig); /** * 支付授权 * state 传递的参数 **/ router.get('/auth', function(req, res){ var url = client.getAuthorizeURL('http://xxxxxxx/支付授权目录',state, 'snsapi_userinfo'); res.redirect(url); }); /** * 支付 **/ router.get('/支付授权目录', function(req, res) { client.getAccessToken(code, function (err, result) { var openid = result.data.openid; var order = { body: '微信支付', attach: '微信支付', out_trade_no: '订单号(自己生成的,支付成功微信会返回)', total_fee: '支付金额(单位是分)', spbill_create_ip: '服务器ip', openid: '微信支付的openid', trade_type: 'JSAPI' }; payment.getBrandWCPayRequestParams(order, function(err, payargs){ if(err) { log.error(err); } res.render('微信支付付款页面', { appId: payargs.appId, timeStamp: payargs.timeStamp, nonceStr: payargs.nonceStr, package: payargs.package, signType: payargs.signType, paySign: payargs.paySign, body:body, total:total, num:num, proname:project_name, state:state }); }); }); }); /** * 微信支付回调 *(点击支付后微信回调的目录) */ router.post('/notify', middleware(initConfig).getNotify().done(function(message, req, res, next) { console.log(message);//微信返回的数据 if(message.return_code == 'SUCCESS' && message.result_code == 'SUCCESS'){ //这里你可以写支付成功后的操作 } })); // 导出 module.exports = router;
支付付款页面
pay.html
<button type="button" class="btn" onclick="goPay('<%= appId %>','<%= timeStamp %>', '<%= nonceStr %>', '<%= package %>', '<%= signType %>', '<%= paySign %>');">微信支付</button> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script type="text/javascript"> function goPay(appId, timeStamp, nonceStr, package, signType, paySign) { WeixinJSBridge.invoke('getBrandWCPayRequest', { "appId" : appId, "timeStamp":timeStamp, "nonceStr" : nonceStr, "package" : package, "signType" : signType, "paySign" : paySign }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok"){ alert("支付成功"); }else{ alert("支付失败,请重试"); } }); } </script>
相关文章推荐
- 基于nodejs微信支付
- 基于nodejs微信支付
- 单页面应用接入微信填坑之二(微信支付Nodejs)
- NodeJS微信支付签名代码
- 基于nodejs实现微信支付功能
- NodeJS微信支付
- NodeJS制作爬虫全过程
- Android微信支付功能
- nodejs学习笔记-2-mysql
- nodejs 创建https服务器
- 前后台分离,nodeJS转发请求实现跨域访问
- NodeJS读取windows下文件中文乱码的问题
- nodejs搭建websocket服务器小结
- 写给小前端er的nodejs,mongodb后端小攻略~ (windows系统~)
- bootstrap、angularJS、nodeJs、reactJs视频教程
- nodeJs安装过程及问题
- 微信支付携手18家商户首创“早7晚5”优惠新玩法
- NodeJS excel转json(xls-to-json的简单使用)
- [nodejs] 利用openshift 撰寫應用喔
- android 微信支付