/// <summary> /// 批量打款 /// </summary> /// <param name="channel">渠道 /// 必填 /// 现在只支持支付宝(TransferChannel.ALI)</param> /// <param name="batchNo">批量付款批号 /// 必填 /// 此次批量付款的唯一标示,11-32位数字字母组合 /// </param> /// <param name="accountName">付款方的支付宝账户名 /// 必填 /// </param> /// <param name="transferData">付款的详细数据 /// 必填 /// 每一个Map对应一笔付款的详细数据, list size 小于等于 1000。 /// 具体参BCTransferData类 /// </param> /// <returns></returns> public static BCTransferResult BCTransfer(string channel, string batchNo, string accountName, List <BCTransferData> transferData) { Random random = new Random(); string transferUrl = BCPrivateUtil.mLocalDefaultHosts[random.Next(0, 4)] + BCConstants.version + BCConstants.transfersURL; long timestamp = BCUtil.GetTimeStamp(DateTime.Now); JsonData data = new JsonData(); data["app_id"] = BCCache.Instance.appId; data["app_sign"] = BCPrivateUtil.getAppSignature(BCCache.Instance.appId, BCCache.Instance.appSecret, timestamp.ToString()); data["timestamp"] = timestamp; data["channel"] = channel; data["batch_no"] = batchNo; data["account_name"] = accountName; JsonData list = new JsonData(); foreach (var transfer in transferData) { JsonData d = new JsonData(); d["transfer_id"] = transfer.transferId; d["receiver_account"] = transfer.receiverAccount; d["receiver_name"] = transfer.receiverName; d["transfer_fee"] = transfer.transferFee; d["transfer_note"] = transfer.transferNote; list.Add(d); } data["transfer_data"] = list; string paraString = data.ToJson(); try { HttpWebResponse response = BCPrivateUtil.CreatePostHttpResponse(transferUrl, paraString); string respString = BCPrivateUtil.GetResponseString(response); JsonData responseData = JsonMapper.ToObject(respString); BCTransferResult result = new BCTransferResult(); result.resultCode = int.Parse(responseData["result_code"].ToString()); result.resultMsg = responseData["result_msg"].ToString(); if (responseData["result_code"].ToString() == "0") { if (channel == "ALI") { result.url = responseData["url"].ToString(); } } return(result); } catch (Exception e) { BCTransferResult result = new BCTransferResult(); result.resultCode = 99; result.resultMsg = e.Message; return(result); } }
protected void Page_Load(object sender, EventArgs e) { string type = Request.Form["paytype"]; if (type == "alipay") { BCPayResult result = BCPay.BCPayByChannel(BCPay.PayChannel.ALI_WEB.ToString(), 1, BCUtil.GetUUID(), "dotNet自来水", null, "http://*****:*****@xx.com"; data.receiverName = "某某某"; data.transferFee = 100; data.transferNote = "note"; BCTransferData data2 = new BCTransferData(); data2.transferId = BCUtil.GetUUID(); data2.receiverAccount = "*****@*****.**"; data2.receiverName = "某某"; data2.transferFee = 100; data2.transferNote = "note"; List <BCTransferData> list = new List <BCTransferData>(); list.Add(data); list.Add(data2); BCTransferResult result = BCPay.BCTransfer(BCPay.TransferChannel.ALI.ToString(), BCUtil.GetUUID(), "毛毛", list); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.resultCode + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.resultMsg + "</span><br/>"); if (result.resultCode == 0) { Response.Write("<a href=" + result.url + ">付款地址</a><br/>"); } } else if (type == "wxtransfer") { Response.Write("<span style='color:#00CD00;font-size:20px'>即将支持</span><br/>"); } else { BCWxJSAPIPayResult result = BCPay.BCPayByChannel(BCPay.PayChannel.WX_JSAPI.ToString(), 1, BCUtil.GetUUID(), "dotNet自制自来水", null, null, "o3kKrjlUsMnv__cK5DYZMl0JoAkY", null, null) as BCWxJSAPIPayResult; Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.resultCode + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.resultMsg + "</span><br/>"); if (result.resultCode == 0) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.appId + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.noncestr + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.package + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.paySign + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.signType + "</span><br/>"); } } Response.Write("<span style='color:#00CD00;font-size:20px'>" + type + "</span>"); }