您好,登录后才能下订单哦!
请求超时!
请点击 重新获取二维码这篇文章主要为大家展示了“微信开发中企业转账到用户接口如何开通”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信开发中企业转账到用户接口如何开通”这篇文章吧。
开通就是点击一下,很简单。但需要注意的是支持向用户转账的账户和收到用户付款的账户不是同一个,而为了满足此功能,你需要先用财付通进行充值(交易中心--资金管理--充值)。
证书下载在账户中心--API安全,现在需要手机验证码和商户平台登录密码。下载之后再window上进行安装,安装的密码是商户号。
安装之后并将证书放在网站目录下,用于下一步在代码中进行验证。
微信现在提供的demo中没有这一块,下面就根据官方的demo做一些修改。和之前的例子类似,我们都需要用WxPayData对象来操作我们的参数。定义一个TransfersPay对象。
public class TransfersPay { public string openid { get; set; } public int amount { get; set; } public string partner_trade_no { get; set; } public string re_user_name { get; set; } public string spbill_create_ip { get; set; } public WxPayData GetTransfersApiParameters() { WxPayData apiParam = new WxPayData(); apiParam.SetValue("partner_trade_no", partner_trade_no); apiParam.SetValue("openid", openid); apiParam.SetValue("check_name", "NO_CHECK"); apiParam.SetValue("amount", amount); apiParam.SetValue("desc", "提现"); apiParam.SetValue("spbill_create_ip", spbill_create_ip); apiParam.SetValue("re_user_name", re_user_name); return apiParam; } }
在官方demo中的WxpayApi中已经包含了公众号支付的相关方法。再增加一个Transfers的方法用来转账:
public static WxPayData Transfers(WxPayData inputData, int timeOut = 6) { var url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"; inputData.SetValue("mch_appid", WxPayConfig.APPID);//公众账号ID inputData.SetValue("mchid", WxPayConfig.MCHID);//商户号 inputData.SetValue("nonce_str", WxPayApi.GenerateNonceStr());//随机字符串 inputData.SetValue("sign", inputData.MakeSign());//签名 string xml = inputData.ToXml(); var start = DateTime.Now; string response = HttpService.Post(xml, url, true, timeOut); // Portal.MVC.Logger.Info("WxPayApi"+ "UnfiedOrder response : " + response); var end = DateTime.Now; int timeCost = (int)((end - start).TotalMilliseconds); WxPayData result = new WxPayData(); result.FromXml(response); ReportCostTime(url, timeCost, result);//测速上报 return result; }
稍微需要注意下的地方就是几个默认参数的名字和别的方法不一样,比如appid和mch_id。转账中是mch_appid和mchid,红包中又叫wxappid和mch_id。然后注意到httpService.post方法第三个参数是带true的。也就是会使用到证书。进入post方法中我们可以看到:
//是否使用证书 if (isUseCert) { string path = HttpContext.Current.Request.PhysicalApplicationPath; X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD); request.ClientCertificates.Add(cert); Log.Debug("WxPayApi", "PostXml used cert"); }
这里使用到了证书的路径和密码,密码即商户号。这一切准备好之后就可以controller中进行转账了:
[LoginValid] public ActionResult CashTransfers(string orderNumber) { //var order = new Order(){Amount = 1}; // var openid = "oBSBmwQjqwjfzQlKsFNjxFLSixxx"; var user = _workContext.CurrentUser; var order = _paymentService.GetOrderByOrderNumber(orderNumber); var transfer = new TransfersPay { openid = user.OpenId, amount = (int) order.Amount*100, partner_trade_no = order.OrderNumber, re_user_name = "stoneniqiu", spbill_create_ip = _webHelper.GetCurrentIpAddress() }; var data = transfer.GetTransfersApiParameters(); var result = WxPayApi.Transfers(data); return Content(result.ToPrintStr()); }
得到结果
这样就实现了转账/提现的功能。
在正式的环境中,我们需要先创建自己的订单,然后向微信请求转账,成功之后对自己的订单进行处理。CashTransfers方法稍作调整。
[LoginValid] public ActionResult CashTransfers(string orderNumber) { var user = _workContext.CurrentUser; var order = _paymentService.GetOrderByOrderNumber(orderNumber); if (string.IsNullOrEmpty(user.OpenId)) { return Json(new PortalResult("请用微信登录!")); } if (order == null || order.OrderState != OrderState.Padding) { return Json(new PortalResult("订单有误!")); } var transfer = new TransfersPay { openid = user.OpenId, amount = (int) order.Amount*100, partner_trade_no = order.OrderNumber, re_user_name = "stoneniqiu", spbill_create_ip = _webHelper.GetCurrentIpAddress() }; var data = transfer.GetTransfersApiParameters(); var result = WxPayApi.Transfers(data); if (result.GetValue("result_code").ToString() == "SUCCESS") { return Json(new PortalResult(true, "提现成功")); } return Json(new PortalResult(false, result.GetValue("return_msg").ToString())); }
另外一个要注意的是,发布之后老是出现操作超时的错误,建议就是修改超时时间为30秒。默认的6秒容易超时。 统一下单的时候也是。
public static WxPayData Transfers(WxPayData inputData, int timeOut = 30)
如果企业账户的钱没了,会出现以下提示:
以上是“微信开发中企业转账到用户接口如何开通”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
PHP网站源码南澳百姓网标王推广西乡网站优化按天计费布吉网站优化按天扣费南山网站推广坑梓seo双龙网站推广工具南山百度竞价包年推广大浪网站优化松岗设计公司网站荷坳百度竞价福永关键词按天收费丹竹头至尊标王永湖企业网站改版广州网站推广方案龙华网站推广方案宝安网站搭建沙井网站设计模板大运营销型网站建设光明网站改版南山网站优化按天计费木棉湾seo网站推广平湖英文网站建设盐田模板推广双龙SEO按天计费石岩网站排名优化大浪网站优化软件坪山网络广告推广双龙建设网站光明建网站荷坳网页设计歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运