1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 'use strict';
- const Controller = require('egg').Controller;
- const wxPayUtil = require('../util/wxPayUtil');
- const xml2js = require('xml2js'); // 引入xml解析模块
- const appId = 'wx1c015df104db7030'; // 小程序的appid
- const mchId = '1226156302'; // 商户号
- // const mchKey = 'zaq12wsxcde34rfvbgt56yhnmjuioplk'; // 商户秘钥
- class WxPayController extends Controller {
- // 小程序提现
- async promotion() {
- const { ctx } = this;
- const query = ctx.request.body;
- const { openid, money, desc } = query;
- let responseData = {};// 请求返回结果
- // const openId = 'oqqAL4xGxKX1U81gwK3SCqleaE7k'; // 提现用户openid 7771920101001 用户的小程序openid
- // const money = 1; // 企业付款金额,单位为分
- // const desc = '积分核销'; // 企业付款备注,必填
- const amount = Number(money) * 100;// 提现的金额(单位:分)
- const orderId = wxPayUtil.getOrderID(); // 商户订单号
- const nonceStr = wxPayUtil.getRandomStr(32);// 生成随机字符串
- const signObj = {
- mch_appid: appId, // 小程序appid
- mchid: mchId, // 商户号
- nonce_str: nonceStr, // 随机字符串
- partner_trade_no: orderId, // 商品订单号
- openid, // 提现用户openid
- check_name: 'NO_CHECK', // 是否校验提现人姓名
- // re_user_name:'老王',//提现人姓名
- amount, // 提现金额
- desc, // 商品描述
- spbill_create_ip: '39.105.97.139', // 服务器地址
- };
- signObj.sign = wxPayUtil.getSignParam(signObj);// 将参数拼接,并进行MD5加密,生成sign值
- const formData = wxPayUtil.getXmlParam(signObj);
- try {
- const payResult = await wxPayUtil.WeApiPromotion(formData);
- xml2js.parseString(payResult, function(error, result) {
- const reData = result.xml;
- ctx.logger.info('返回结果解析====================>' + JSON.stringify(reData));
- if (reData.return_code[0] === 'SUCCESS') {
- responseData = {
- data: reData,
- };
- } else {
- responseData = {
- wxReturnMsg: '微信提现API失败',
- wxReturnCode: 'FAIL',
- };
- }
- });
- // try {
- ctx.success(responseData);
- } catch (err) {
- ctx.error('微信提现失败', 500);
- }
- }
- }
- module.exports = WxPayController;
|