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.只有在设计撤销、退款申请API中调用才会使用证书,关于商户证书问题,可参考安全规范--商户证书

2.32位秘钥(partnerKey)**需要在商户号管理中自行设置,用途:提交信息签名使用,,

小程序

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

第二部分 代码实现

2.1 统一下单

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

问题:

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

2.1.1 签名算法

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

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

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

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

第三部分 主要注意事项

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206G0YC4400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券