位置: 编程技术 - 正文

nodejs微信公众号支付开发(node.js go)

编辑:rootadmin

推荐整理分享nodejs微信公众号支付开发(node.js go),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node 微信公众号开发,node wechat,node wechat,nodejs微信公众号开发,node 微信公众号开发,nodejs微信小程序开发工具,nodejs微信公众号开发,nodejs微信公众号开发,内容如对您有帮助,希望把文章链接给更多的朋友!

odeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能。这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支付需求。现在把开发过程重新捋一遍,以帮助更多的开发者顺利的完成微信支付功能的开发。(微信暂时还没有提供 node 的支付功能)

一.请求CODE

请求 code 的目的就是获取用户的 openid(用户相对于当前公众号的唯一标识) 和access_token,请求的API: api 需要注意几个参数:

1. appid公众号的 appid,可以在公众号中看到2. redirect_uri 自定义的微信回调地址, 微信会在你请求完上面的地址后跳转到你定义的redirect_uri的地址, 带着 code,此处的 redirect_url 需要 **url_encode** *php*, 如果你的程序是 node 则需要使用 **encodeURLComponent(url)**编码3. response_type=code,这个没什么好说的就是固定的 response_type=code,详细说明可以查看微信官网的说明4. scope=snsapi_userinfo,固定这样写就好,详细说明可以查看微信官网的说明5. state=STATE 固定这样写就好,详细说明可以查看微信官网的说明6. wechat_redirect 固定这样写就好,详细说明可以查看微信官网的说明ps:官网链接:

二.通过code获取access_token,openid

第一步已经获取到了 code 的值了, 那么接下来就需要通过 code 来获取 access_token,openid的值了,请求的 api API 此处api 的参数说明:

1. appid 微信公众号 id,微信公众号后台获取2. secret 微信公众号的密钥, 微信公众号后台获取3. code, 第一步获取用到的 code4. grant_type=authorization_code 固定就好

三.通过access_token调用接口

access_token 可以做后续的功能, 可以参考官方的例子: 只要网页端调用微信支付功能就完事儿了?no,还差点 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。 注意:WeixinJSBridge内置对象在其他浏览器中无效。 示例代码如下:

看到上面的代码, 那么想调用微信的支付功能需要传递参数,

参数说明:

1. appId //公众号名称,由商户传入 2. timeStamp //时间戳,自年以来的秒数 此处需要特别的注意一下,需要是字符串的时间戳格式, 意思就是必须就“” 引号3. nonceStr //随机串 位的, 随后会提供方法4. signType // 微信签名方式: MD. paySign //微信签名, 随后说6. **package** //这个最重要, 充哪里获取到的呢? 接下来说。ps: 官网接口说明 从微信的 统一下单 接口获取prepay_id

nodejs微信公众号支付开发(node.js go)

官方 api: 但是有一些不是必须的,下面是必须参数

微信的统一下单接口要求传递的是 xml 的数据, 而且数据还需要签名, 那么首先吧数据签名。 签名规则可以参考微信给出的签名规则(签名方法一会给出) 微信官方签名规则: 的格式:

接下来就是请求 api 获取prepay_id的值了, 将上面得到的 xml 数据请求下面的 api 发送给微信, 微信验证数据没问题后会放回你想要的值。 api : 获取到了prepay_id是不是就可以在 h5 段直接调用微信的支付了么? 答案是还不可以。

获取到了prepay_id那么现在h5 呼起微信的支付功能的参数是这样的:

有了这样的参数, 那么你还需要吧所有参与的参数做签名。签名规跟上面的一样,生成了签名后需要吧签名的参数 paySign 赋给h5 呼起微信的支付功能的参数(也就是微信的签名不参与签名的生成) 最后的参数是这样子的:

如果你的各个环节都没有问题, 那么得到了这样参数后你就可以正常的调用起微信的支付功能, 跟原生的功能是没有任何的差别的,(估计你现在的心里也特高兴吧, 没有 app 竟然可以使用 app 的功能,就是这么的神奇)。

七.支付完成的回调

微信支付完了后会在 h5 页面的微信支付的回调函数里面放回值, res.err_msg == "get_brand_wcpay_request:ok" ,这样就是成功了, 但是不是就完事儿了呢 ? 也不是,为什么呢? 微信真的收到钱了么? 收到的钱是不是你传递给微信的值呢 ?你还需要将支付的结果写数据库什么的,这些都是未知。还记的在统一下单接口中有个必须参数就是 notify_url : NOTIFY_URL,// 微信付款后的回调地址 这个地址是用户传递给微信的, 微信在收到用户的付款后会以 post 的方式请求这个接口,微信会传递用户付款的信息过来, 不过是 xml 格式的。 类系这样的 xml 格式:

根据自己的业务逻辑解析这个 xml 格式的数据就好了。 注意:这里你在获取到数据后微信需要得到你的回应, 如果你一直不回应微信, 微信会请求你好几次, 这样估计你的逻辑会有问题吧,所以你需要给微信返回 xml 的格式的 回应。

小坑:node ,express 框架开发, 如果你在微信的支付成功后的回调中没有获取到任何 xml 的值, 那么你需要安装一组件:body-parser-xml, 你可以使用 npm install body-parser-xml --save 安装, 在 app.js 里面require('body-parser-xml')(bodyParser);,使用中间件的方式

这样你就可以正常的获取到微信的 xml 数据了。

使用方法:

就到这里吧, 感觉也差不多了。如有不对的地方还请指正。

附上我自己的代码:

详解Node.Js如何处理post数据 实现思路将data和end事件的回调函数直接放在服务器中,在data事件回调中收集所有的POST数据,当接收到所有数据,触发end事件后,其回调函数调用请求

详解Node.js中的事件机制 前言在前端编程中,事件的应用十分广泛,DOM上的各种事件。在Ajax大规模应用之后,异步请求更得到广泛的认同,而Ajax亦是基于事件机制的。通常js给

利用Node.js制作爬取大众点评的爬虫 前言Node.js天生支持并发,但是对于习惯了顺序编程的人,一开始会对Node.js不适应,比如,变量作用域是函数块式的(与C、Java不一样);for循环体({}

标签: node.js go

本文链接地址:https://www.jiuchutong.com/biancheng/370799.html 转载请保留说明!

上一篇:Node.js的基本知识简单汇总(node.js的概念)

下一篇:详解Node.Js如何处理post数据(node. js教程)

  • 个人车辆无偿给公司使用
  • 没有销项购买税金税盘如何做账
  • 应交个人所得税在借方是什么意思
  • 利润表中的所得税
  • 异地预缴怎么做账
  • 已认证红字信息表
  • 预缴土地增值税的会计处理
  • 员工出差有补助吗
  • 长期待摊费用摊销年限规定
  • 小规模纳税人季度超过45万怎么交税
  • 税务局开普票怎么开
  • 货款和发票金额不符
  • 装修改造费用按多少年摊销
  • 发票勾选没有确认怎么办
  • 有票据的福利费是不需要职工薪酬科目过渡吗
  • 新成立的公司每天付款有要求吗
  • 单次劳务费税率
  • 外贸企业购进货物出口后,应退消费税应当贷记
  • 电梯安装简易征收的优点
  • 有单位购买我公司开发的房产作为“投资性房地产”,该单位需要缴纳房产税吗?
  • 海关增值税抵扣当月忘采集
  • 培训过程中出现的问题及解决办法
  • 一般纳税人税控盘维护费会计分录
  • 土地收储的含义
  • 计提税金及附加需要附原始凭证吗
  • 农村合作社补贴政策
  • 销售商品包装材料怎么做
  • php网页爬虫
  • vue中使用v-for指令时 为什么要加 key解释正确的是
  • win10怎么推送win11
  • 鸿蒙怎么设置默认系统
  • PHP:session_register_shutdown()的用法_Session函数
  • PHP:Memcached::setSaslAuthData()的用法_Memcached类
  • 累计折旧额怎么计算公式
  • 成本结转的科目
  • 事业单位无职务人员称什么
  • 转让旧房及建筑物的扣除项目
  • php多图片上传到数据库
  • 房地产企业借款可以用未建成的房子设定浮动抵押吗?
  • 代收资金清算过期怎么办
  • 蚁群算法是什么
  • opencv模板匹配原理
  • 筹建期间发生的开办费用
  • 织梦添加文章如何修改高级参数
  • windows11/windows10专业清理的系统工具Duplicate Cleaner5.0.13中文破解免费下载
  • PostgreSQL教程(十二):角色和权限管理介绍
  • 股东分红要不要纳税?
  • 新收入准则 2021
  • 本年度发票一定要收回吗
  • 预收账款和预付账款都属于负债类科目
  • 收不回来的问题
  • 营改增后房地产企业增值税如何核算
  • 固定资产一次性扣除账务处理
  • 母公司及子公司增资
  • 在建工程的人工费会计分录
  • 发票邮寄到家
  • 一般纳税人增值税优惠政策2023
  • 主营业务收入多栏式明细账怎么登
  • ubuntu系统中安装微信步骤
  • centos环境搭建
  • winload是什么
  • xp桌面消失 右击无反应
  • ubuntu怎样调出命令行
  • 电脑桌面图标有虚影怎么回事
  • windows无法访问指定设备路径权限
  • win7关机太慢怎么办
  • win10如何删除pin登录密码
  • linux安装sshd服务
  • xp 桌面图标
  • windows2008无法识别usb
  • win8.1激活方法
  • Win10 Mobile 10586.164中文版升级截图曝光
  • cocos2dx性能优化与包体优化
  • 简述opengl的编程步骤
  • node.js中的http.response.write方法使用说明
  • linux定时备份文件
  • python flask快速入门与进阶
  • JavaScript中void(0)的具体含义解释
  • 一般纳税人提供公共交通运输服务免征增值税
  • 混凝土搅拌站如何结转成本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设