Node.js 实战篇--微信支付系列(二)

35岁的程序员 2018-02-06 17:30:49 ⋅ 742 阅读

接上一节----Node.js 实战篇--微信支付系列(一)
首先我们看一下整体上微信小程序的开发流程图:

第一部分 整体概述

摘录自网上

商户系统和微信支付系统主要交互:

1、小程序内调用登录接口,获取到用户的openid, api参见公共api小程序登录API
2、商户server调用支付统一下单,api参见公共api统一下单API
3、商户server调用再次签名,api参见公共api再次签名
4、商户server接收支付通知,api参见公共api支付结果通知API
5、商户server查询支付结果,api参见公共api查询订单API

由上边两张图可以很方便的得到整个支付的总体流程.那么接下来所需步骤主要有一下几个部分:

1. 申请获取微信支付权限[小程序|商户号];
2. 配置https服务器[更安全];
3. 代码部分

总结一下: 由Node.js 实战篇--微信支付系列(一)已获取内容列表

  1. 商户号: **
    1.只有在设计 撤销、退款申请API中调用才会使用证书,关于商户证书问题,可参考安全规范--商户证书
    2.32位秘钥
    (partnerKey)**需要在商户号管理中自行设置, 用途:提交信息签名使用, 建议保留在服务器端,可以将签名过得数据返回前端即可,

  2. 小程序
    1.已认证的小程序账户;

第二部分 代码实现

2.1 统一下单
以统一下单为例,介绍如何进行数据格式化并提交,微信API文档

问题:

1. 参数较多;
2. 签名规则复杂.

其实在统一下单时,有简入难的可以先将必选字段签名提交,对于签名规则,建议一定要在微信提供的验证页面验证后再提交.(签名校验工具)

2.1.1 签名算法

有了小程序提交给后台的APPid,我们就可以将已经拿到的商户号秘钥(partnerKey)等结合起来进行签名.官方文档实例如下:

  1. 设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

  2. 在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置

最终以xml格式传给微信后台,返回的状态码,可参照统一下单中返回状态码

第三部分 主要注意事项

  1. 注意大小写,一定要注意大小写;

  2. 一定要在微信支付接口签名校验工具验证提交信息.


更多精彩内容请关注“IT实战联盟”哦~~~




全部评论: 0

    我有话说:

    Node.js 实战--支付系列(一)

    真正的无知不是知识的贫乏, 而是拒绝获取知识!——波普尔 (哲学家 思想家)鉴于支付文档内容详实

    小程序实战:基于wxcharts.js绘制移动报表

    小程序图表插件(wx-charts)是基于canvas绘制,体积小巧,支持图表类型饼图、线图、柱状图 ......

    小程序实战:商品属性联动选择(案例)

    本期的小程序实战来做一个电商网站经常用到的-商品属性联动选择的效果,素材参考了一点点

    小程序电商实战-首页(下)

    上一小程序电商实战-首页(上)好了,上一期我们把首页搜索、导航栏和广告轮播给做完了,那么接下来会继续

    小程序电商实战-首页(上)

    上一小程序电商实战-入门 嗨,大家好!经过近两周的精心准备终于开始小程序电商实战之路喽。那么最终会做成什么样呢?好了,不啰嗦了 我们先看首页长什么样吧!   首页效果图

    为什么要使用 Node.js?这几点你必须知道!

    经过这几年的发展,前端普遍进入了技术深水区,只会Web页面开发已经难以满足企业的需求,Node逐渐成为了刚性技能。 但Node在业务上的使用还没有那么普及,有的时候想用老板还不同意,本文将从4个角度

    小程序商城(九):授权并实现个人中心页面页面

    实现商城的授权并获取用户信息和个人中心页面布局

    小程序实战:如何解决https域名问题 ?

    开发自己的小程序绕不开https问题,为了能在小程序中调用我们自己的API服务请打开看一看吧!!!

    小程序实战实现抖音评论效果

    我们在写小程序的时候经常会遇到弹出层的效果而现有官网提供的跳转方法多数是不支持参数传递的。本文教大家做一个抖音评论效果的小程序......

    Node实战:Express路由(三)

    Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

    小程序抖音实战-首页(上)

    你也可以用小程序编写一个抖音

    小程序实现商品数量加减

    这是一个用小程序原生代码实现的数量加减demo,主要是用于商品购物车或者商品详情修改数量使用

    小程序营销之大转盘(

    第一个版本的大转盘都是用图片做的,奖品等信息都是不无法修改的,说白了就是没啥实际用途,作者我就直接用canvas撸了一个全手工绘制的大转盘分享给大家

    小程序抖音实战-支持播放小视频

    之前的案例只支持图片的播放,经过粉丝的反馈说视频弄不出来,本节内容就教大家怎么做

    小程序商城(七):动态API实现商品分类

    小程序商品分类页面布局并且调用动态API获取数据并加载

    小程序电商实战-商品列表流式布局

    今天给大家分享一下小程序中商品列表的流式布局方式,根据文章内容操作就可以看到效果哦~~~

    Node实战Nodejs 链接 Mariadb 实例

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL

    小程序电商实战-商品详情(上)

    先看一下今天要实现的小程序商品详情页吧!

    小程序电商实战-购物车(上)

    好久没更新小程序电商实战的文章了,是因为最近一直做整体架构调整,一些准备工作也是比较耗费时间的。在这几天将会有新版的 小程序电商教程推出.......