云开发可以做 企业付款可以到零钱吗?

小程序 文章 2020-08-07 12:01 650 0 全屏看文

AI助手支持GPT4.0

云开发可以做 企业付款可以到零钱吗?Cloud development can be done, can corporate payments come to change?

云开发可以做 企业付款可以到零钱吗?

https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1


云开发可以做 企业付款可以到零钱吗?

https://pay.weixin.qq.com/wiki/doc/api/tools/mch_ pay.php?chapter=14_ Can cloud development do enterprise payment to change?

回答:

承之:

云函数,付款是V2版本接口

common.jsconst rp = require('request-promise')const fs = require('fs')const md5=require('md5')const _xml=require('xml')const xml2js=require('xml2js')const parser=new xml2js.Parser()const config = {  appid'xxxxxxxxxxxxxxx',  //小程序wxid  mchid'xxxxxxxxxxxx',  //商户号  partnerKey'xxxxxxxxxxxxxxxxxxxx'//商户api密钥  serial_no"xxxxxxxxxxxxxxxxxxxxxx",  //商户证书序列号}var globalData={}/*v2版接口的统一请求方法 *@method *@param {Object} options 请求选项和参数 *  options={ *    uri:{String} 请求地址, *    type:{String} 请求方式 GET POST..., *    body:{Object} (可选)请求参数集,POST请求需要同时传递本项, *    cert:{Boolean} (可选)是否需要证书,不填或false为不需要 *  } */async function _request(options)//调用接口  var datas=[]  for(let d in options.body){    datas.push(      {[d]:options.body[d]}    )  }  datas.push({sign:_sign(options.body)})  var cert=options.cert ? {    pfx:fs.readFileSync(__dirname+'/apiclient_cert.p12'),    passphrase:config.mchid  } : {}  var call = await rp({    uri'https://api.mch.weixin.qq.com/'+options.uri,    method: options.method,    body: _xml({xml:datas}),    ...cert  })  parser.parseString(call,function(err,res){    result=res.xml    for(let r in result){      result[r]=result[r][0]    }  })  return result}/*获取随机字符串 *@method *@return {String} 随机字符串 */function _randomStr(){  return (new Date().getTime() + '_' + Math.random()).toString().slice(0,30)}/*获取签名 *@method *@param {Object} body 包含接口请求参数的对象  *@return {String} 签名计算结果*/function _sign(body{  let body_arr = []  for (let b in body){    if(body[b].toString().length > 0){      body_arr.push(b + '=' + body[b])    }  }  body_arr.push('key=' + config.partnerKey)  return md5(body_arr.join('&')).toUpperCase()}module.exports = {  config,  globalData,  _request,  _randomStr}


CompanyPay.jsconst common=require('./common.js')/*企业付款接口 * *@Object CompanyPay*/const CompanyPay={    /*企业付款到零钱接口   *@method   *@param {Object} option   *  {   *    amount:{Number}, 付款金额,单位(分)   *    desc:{String}, 付款备注   *    openid:{String}, 接收方openid   *  }   *@return {Object} 接口返回参数   */  tochange:async function(option){    return await common._request({      uri:'mmpaymkttransfers/promotion/transfers',      method:'POST',      body:{        amount:option.amount,        check_name:'NO_CHECK',//或动态传入        desc:option.desc,        mch_appid:common.config.appid,        mchid:common.config.mchid,        nonce_str:common._randomStr(),        openid:option.openid,        partner_trade_no:new Date().getTime()      },      cert:true //企业付款需要证书  }  }  module.exports ={    ...CompanyPay  }


//调用// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init({  env: cloud.DYNAMIC_CURRENT_ENV})// 云函数入口函数exports.main = async (event, context) => {  switch(event.action){    case 'companypay_tochange'//企业付款到零钱      const CompanyPay=require('./ApiV2/CompanyPay')      let companypay_action=event.action.replace('companypay_','')      return CompanyPay[companypay_action](event.data)    break    default:      return  }}


实现功能是没问题的,至于安全性、性能效率语法什么的,还需要自己完善,仅供参考

技术支持小易:可以的。调用api就行了,云开发不要局限于别人封装好了哪些接口和能力。
搞文艺的猿:

可以啊

-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
3月1日新规后,服务商如何帮无营业执照的小商户开通微信支付?
Iphone 13 Pro 底部tabbar文案显示不全
红包封面审核驳回理由不存在?
公众号因涉嫌强制关注公众号被封禁,整改完毕后申诉后,一个多星期了没有反馈怎么解决?
我这解密出来的数据没有手机号信息啊,还是只有用户头像的基础信息,请问是基础库的版本问题吗?
随便看看
教育科技公司申请微信支付被拒绝? 4118
微信公众号免300认证教程 5147
小程序已经上线,作为管理员无法在小程序数据助手查看数据? 4455
小程序广告组件通过审核,但是小程序内没有显示广告? 4426
企业微信通讯录账号被管理员误/恶意删除,怎么办? 8474
问题? 7998
如何快速搭建抽奖助手小程序(无需代码知识) 5258
许涛 大哥在吗, 要解冻小程序的时候提示信息主体不一致, 能帮忙看下吗? 6529
小程序搜一搜全称搜索不显示 麻烦解决一下!谢谢 5822
我的小程序广告收款主体是个体工商户,每个月邮寄两次发票很是麻烦,我年底的时候打包邮寄一次可以么? 5486