微信企业支付到零钱
提前说一个重要的坑,请大家注意不要绕进去浪费时间。
- 用户付款到商户平台的账户 与 商户付款到个人的账户是相互独立的 意思是商户要付款到个人必须用自己充值到商户平台账户的钱
- 企业付款到个人必须开通此功能 之后才可以使用
- 需要到商户平台下载支付证书 在使用时不要用官方的demo太久远了而且压根不能用,在引用时直接把文件存放在服务器上的绝对路径写到函数里(相对于服务器的绝对路径)
- 在算签名的时候注意 ASCII的顺序 大写字母 < _ < 小写字母 (实在是太坑了)
- 支付金额必须大于100 单位分
- 直接上代码 wxcompay.js
/**
* Created by feng on 2018/08/17
*/
/*拼接微信企业付款字符串 */
var config = require('../../config');
var request = require('request');
var xml2js = require('xml2js');
var fs = require('fs');
var https = require('https');
var fnCreateXml = function(json){
var _xml = '';
for(var key in json) {
_xml+= '<'+key+'>'+json[key]+'</'+key+'>';
}
return _xml;
}
/*
生成url串用于微信md5校验
*/
var fnCreateUrlParam = function(json){
var _str = '';
var _arr = []
for(var key in json){
_arr.push(key+'='+json[key]);
}
return _arr.join('&');
}
/*
生成微信红包数据
*/
var fnGetWeixinBonus = function(option){
var amount = option.amount || 100, //红包总金额
openid = option.openid || 'opVfe0pFBNN65Dn-PE_SEEjr0MHY';//红包发送的目标用户
var now = new Date();
var showName = config.server.showName;
var clientIp = config.server.clientIp;
var desc = config.server.wishing;
var mch_id = config.server.mch_id;
var mch_appid = config.server.appid,
wxkey = config.server.