/// <summary> /// 企业付款到银行卡https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_2 /// </summary> /// <param name="request"></param> public PayBankResponse PayBank(PayBankRequest request) { var response = new PayBankResponse() { return_code = "FAI" }; string requestUrl = "https://api.mch.weixin.qq.com/mmpaysptrans/pay_bank"; PayBankImpl payBank = new PayBankImpl() { apiKey = request.apiKey }; payBank.Add("mch_id", request.mch_id); payBank.Add("nonce_str", request.desc); payBank.Add("amount", request.amount.ToString()); payBank.Add("bank_code", request.bank_code); payBank.Add("account_type", request.account_type.ToString()); payBank.Add("bank_note", request.bank_note); payBank.Add("desc", request.desc); payBank.Add("enc_bank_no", request.enc_bank_no); payBank.Add("enc_true_name", request.enc_true_name); payBank.Add("partner_trade_no", request.partner_trade_no); var sign = payBank.CreateMd5Sign(); payBank.Add("sign", sign); var data = new HttpUtils().DoPost(requestUrl, payBank.ParseXML(), request.isUseCert, request.cert, request.password); var doc = new XmlDocument(); doc.LoadXml(data); XmlNode xmlNode = doc.DocumentElement; if (xmlNode != null) { response.return_code = xmlNode["return_code"].InnerText; if (response.return_code.ToUpper() != "SUCCESS") { response.return_msg = xmlNode["return_msg"].InnerText; return(response); } response.result_code = xmlNode["result_code"].InnerText; if (response.result_code.ToUpper() == "FAIL") { response.err_code = xmlNode["err_code"].InnerText; response.err_code_des = xmlNode["err_code_des"].InnerText; return(response); } response.return_code = "SUCCESS"; } return(response); }
/// <summary> /// 提现到银行卡 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <PayBankResponse> PayBank(PayBankRequest request) { // 获取Rsa值 // var wxRequest = new WeChatPayRiskGetPublicKeyRequest(); // var response = await _client.ExecuteAsync(wxRequest, _wechatPayOption); var result = new PayBankResponse(); var wxRequest = new WeChatPayPayBankRequest { PartnerTradeNo = request.PartnerTradeNo, BankNo = request.BankNo, TrueName = request.TrueName, BankCode = request.BankCode, Amount = request.Amount, Desc = request.Desc }; try { var response = await _client.ExecuteAsync(wxRequest, _wechatPayOption); if (response.ReturnCode == WeChatPayCode.Success) { if (response.ResultCode == WeChatPayCode.Success) { result.IsSuccess = true; } result.Message = response.ErrCodeDes; } else { result.Message = response.ReturnMsg; } } catch (Exception ex) { result.Message = ex.Message; } return(result); }