微信小程序微信支付的一些坑
使用的是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为大写)传递参数不用,但是必须参与签名,之后就是
微信小程序微信支付的一些坑的更多相关文章
- 微信小程序篇(微信小程序的支付)
微信小程序的支付和微信公众号的支付是类似的,对比起来还比公众号支付简单了一些,我们只需要调用微信的统一下单接口获取prepay_id之后我们在调用微信的支付即可. 今天我们来封装一般node的支付接口 ...
- 总结微信小程序开发中遇到的坑
总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...
- 小程序——微信小程序初学踩过的坑
微信小程序初学踩过的坑 一.前言 最近因为某些需要和个人兴趣打算开发一下微信小程序,经过在官方网站上的基本了解,我大体知道了微信小程序开发的大致过程,其实最本质的就是MVVM,借用了很多模式上 ...
- 【微信小程序】支付过程详解
一.介绍 今天跟大家分享微信小程序集成支付. 二.分析 1.小程序支付API 地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html ...
- 微信小程序在线支付功能使用总结
最近需要在微信小程序中用到在线支付功能,于是看了一下官方的文档,发现要在小程序里实现微信支付还是很方便的,如果你以前开发过服务号下的微信支付,那么你会发现其实小程序里的微信支付和服务号里的开发过程如出 ...
- 微信小程序—微信自动退款
微信小程序—微信自动退款 一.业务背景 微信自动退款串接基于酷客多小程序商城系统,为方便财务人员进行订单退款而开发,将酷客多小程序系统财务退款流程和微信退款系统打通.实现一个系统管理运营. 二.业务流 ...
- 微信小程序-微信自动退款(Java后台)
微信小程序-微信自动退款 1.首先分享 微信自动退款接口: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4 微信付款 代码案例 ...
- 微信小程序+微信管理后台+微信用户前台
代码地址如下:http://www.demodashi.com/demo/15043.html #### 微信小程序+微信管理后台+微信用户前台 #### 产品介绍 基础功能开发:景区微信地图导游.天 ...
- 微信小程序开发技巧及填坑记录
以下是自己在开发过程中遇到的坑和小技巧,记录以下: 1.出现了 page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add pag ...
随机推荐
- JDBC程序实例
实例 ( Statement ): public class JDBC { public static void main(String[] args) throws Exception { Conn ...
- CF949A Zebras 构造
是一道不错的构造题. 我们观察,一个 111 的前后必须都有 000. 那么,我们开一个二维数组 (vector)(vector)(vector),这样每遇到一个 000 就将 000 加入到当前的 ...
- uva 11300 Spreading the Wealth_数学推倒 + 思维
这道题和负载平衡问题是同一道题, 如果 n<=100n <= 100n<=100 的话是可以用最小费用流来求解的. 但是题中 nnn 最大可达到 10610^6106, 这就需要我们 ...
- C# 基础复习 一 数据类型
数据类型分为:值类型和引用类型 值类型:byte.short/char.int.long.float.double.decimal.enum.struct 引用类型:string.object.int ...
- AT1145 ホリドッグ
洛谷的题解区里竟然没有O(1)做法详解-- 题面就是要判断\(1+2+\dots+n\)是不是素数 很容易让人想到上面的式子事实上等于\(n(n+1)/2\) 根据质数的定义,质数只能被1和自身整除 ...
- WinServer-IIS-压缩及缓存
静态内容压缩: 默认10s内有2个客户端一起请求服务器的话,服务器就会把相关的静态内容压缩返回 动态内容压缩: 默认IIS的程序域最高可以占用CPU90%的资源,这个可以通过命令行修改 缓存和内核缓存 ...
- 洛谷——P1886 滑动窗口|| POJ——T2823 Sliding Window
https://www.luogu.org/problem/show?pid=1886#sub || http://poj.org/problem?id=2823 题目描述 现在有一堆数字共N个数字( ...
- java 基础概念 -- 数组与内存控制
问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...
- linux文件与用户和群组
文件基本属性 在图片中alogrithm的文件属性为drwxrwxr-x,其中d代表此文件为目录. 后面rwx,rwx,r-x分别代表文件所属者(ower),组(group),其他用户(other)的 ...
- [Tools] Create your own mobile emulator device by using Chrome dev tool
Using the New Device Emulation Interface The Device Emulation interface changed a bit with the newer ...