使用的是Node.js作为后端

统一下单:

appid:这里的appid是调起微信支付的appid

mch_id:商户号,需要注意的是商户号要与appid对应

nonce_str:Math.random().toString(36).substr(2)这是我的随机字符串的生成算法

sign:这里的签名是第一次签名,后面还会讲到第二次签名,主要注意点如下:

  1.首先要把需要传递请求参数使用key1=value&key2=value2的形式进行拼接也就是统一下单文档上的参数,除去sign

  2.所拼接的字符串的属性名的顺序,必须按照ASCII码(字典序)进行排序

  3.在最后拼接上使用的key,这里的key指的是商户平台设置的API秘钥>>>>微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置

  4.进行MD5签名或者HMAC-SHA256签名方式,这里使用到的是MD5的方式

  5.最后需要需要转换成大写

sign_type:签名方式,要与使用的签名方式一直

spbill_create_ip:这里的ip网上有人说随便填,但是我在尝试时候使用了127.0.0.1返回的数据中数ip错误,所以使用了网络的真实ip,这里使用到了http://ip-api.com/json

trade_type:这里使用JSAPI,需要在商户平台进行开通

openid:用户在商户appid下的唯一标识 获取方式请参考小程序API wx.login和code2Session,其中appid,secret应该对应

最后请求参数生成完毕之后需要传递一个XML文件到服务器这里使用到了xml2js

一般请求失败后可以先检查请求数据格式是否正确,再检查参数顺序以及key是否对应

wx.requestPayment(Object object)调起微信支付

timeStamp:当前的时间戳单位秒

package:这里的形式是prepay_id=***这里的prepay_id是统一下单成功后返回的数据结果

signType:签名方式

paySign:这里是签名也就是前面所说的二次签名这里的签名包含参数有appId(注意这里跟一次签名的属性不同I为大写)传递参数不用,但是必须参与签名,之后就是

nonceStr,package=prepay_id=(这里注意需要加上prepay_id=),signType,timeStamp,还有一个key,这是商户的API秘钥,需要参与签名(之前坑在这里),小程序调用支付API,其他注意事项与第一次签名方式一致

微信小程序微信支付的一些坑的更多相关文章

  1. 微信小程序篇(微信小程序的支付)

    微信小程序的支付和微信公众号的支付是类似的,对比起来还比公众号支付简单了一些,我们只需要调用微信的统一下单接口获取prepay_id之后我们在调用微信的支付即可. 今天我们来封装一般node的支付接口 ...

  2. 总结微信小程序开发中遇到的坑

    总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...

  3. 小程序——微信小程序初学踩过的坑

    微信小程序初学踩过的坑 一.前言     最近因为某些需要和个人兴趣打算开发一下微信小程序,经过在官方网站上的基本了解,我大体知道了微信小程序开发的大致过程,其实最本质的就是MVVM,借用了很多模式上 ...

  4. 【微信小程序】支付过程详解

    一.介绍 今天跟大家分享微信小程序集成支付. 二.分析 1.小程序支付API 地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html ...

  5. 微信小程序在线支付功能使用总结

    最近需要在微信小程序中用到在线支付功能,于是看了一下官方的文档,发现要在小程序里实现微信支付还是很方便的,如果你以前开发过服务号下的微信支付,那么你会发现其实小程序里的微信支付和服务号里的开发过程如出 ...

  6. 微信小程序—微信自动退款

    微信小程序—微信自动退款 一.业务背景 微信自动退款串接基于酷客多小程序商城系统,为方便财务人员进行订单退款而开发,将酷客多小程序系统财务退款流程和微信退款系统打通.实现一个系统管理运营. 二.业务流 ...

  7. 微信小程序-微信自动退款(Java后台)

    微信小程序-微信自动退款 1.首先分享 微信自动退款接口: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4 微信付款 代码案例 ...

  8. 微信小程序+微信管理后台+微信用户前台

    代码地址如下:http://www.demodashi.com/demo/15043.html #### 微信小程序+微信管理后台+微信用户前台 #### 产品介绍 基础功能开发:景区微信地图导游.天 ...

  9. 微信小程序开发技巧及填坑记录

    以下是自己在开发过程中遇到的坑和小技巧,记录以下: 1.出现了 page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add pag ...

随机推荐

  1. 解决 Windows XP 下 IIS 最大连接数为 10 的问题

    为了方便调试网站程序,就在 Windows XP 系统下安装了 IIS,但是出现了一个问题:“403.9 误-禁止访问:连接的用户过多”,会有这样的问题出现,一般有两种可能:一.IIS 本身的最大连接 ...

  2. day02 操作系统与编程语言

    目录 操作系统 操作系统是什么 操作系统做了什么 文件是什么? 为什么要有操作系统 操作系统有什么用 应用程序的启动和操作系统的启动 复盘QQ的启动 操作系统启动的流程 编程语言分类 机器语言 汇编语 ...

  3. mysql对事务的支持

    起因:因为只是需要编写一个接口,无需使用框架,但是又要求对数据库的操作支持事务,所以直接使用mysql自带的事务进行处理 mysql自带对事务的支持,但是他默认是关闭的,需要我们手动打开,打开mysq ...

  4. C语言基本语法——预处理器和预处理指令

    1.什么是预处理器 2.什么是预处理器指令 3.预处理器指令 4.宏指令 5.宏函数 6.宏函数的优缺点 7.条件编译指令 1.什么是预处理器 • 预处理器是一个程序,用来处理源程序中的预处理指令. ...

  5. HDU 2079 选课时间(母函数模板题)

    链接:传送门 思路:母函数模板题 /************************************************************************* > Fil ...

  6. AJAX 创建对象 请求 响应 readyState

    AJAX 创建对象 请求 响应 readyState AjAX = Asynchronous JavaScript and XML (异步的JavaScrip和 XML). 不是新的编程语言, 而是一 ...

  7. mysql数据实时同步到Elasticsearch

    业务需要把mysql的数据实时同步到ES,实现低延迟的检索到ES中的数据或者进行其它数据分析处理.本文给出以同步mysql binlog的方式实时同步数据到ES的思路, 实践并验证该方式的可行性,以供 ...

  8. Ubuntu(Linux Mint):sudo apt-get upgrade升级失败

    Ubuntu上进行sudo apt-get upgrade后出现异常,升级失败. 异常信息如下: E: dpkg was interrupted, you must manually run 'dpk ...

  9. POI 导入excel数据自己主动封装成model对象--代码分析

    上完代码后,对代码进行基本的分析: 1.主要使用反射api将数数据注入javabean对象 2.代码中的日志信息级别为debug级别 3.获取ExcelImport对象后须要调用init()方法初始化 ...

  10. 取消记录tableView选中效果

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self. ...