protected void Page_Load(object sender, EventArgs e) { string type = Request.Form["paytype"]; if (type == "alipay") { BCBill bill = new BCBill(BCPay.PayChannel.ALI_WEB.ToString(), 1, BCUtil.GetUUID(), "dotNet自来水"); bill.returnUrl = "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); try { BCTransfersParameter para = new BCTransfersParameter(); para.channel = BCPay.TransferChannel.ALI.ToString(); para.batchNo = BCUtil.GetUUID(); para.accountName = "毛毛"; para.transfersData = list; string transfersURL = BCPay.BCTransfers(para); Response.Write("<a href=" + transfersURL + ">付款地址</a><br/>"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } } else if (type == "alitransfer") { try { BCTransferParameter para = new BCTransferParameter(); para.channel = BCPay.TransferChannel.ALI_TRANSFER.ToString(); para.transferNo = BCUtil.GetUUID(); para.totalFee = 100; para.desc = "C# 单笔打款"; para.channelUserId = "*****@*****.**"; para.channelUserName = "******"; para.accountName = "XXX有限公司"; string aliURL = BCPay.BCTransfer(para); Response.Write("<a href=" + aliURL + ">付款地址</a><br/>"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } } else if (type == "wxtransfer") { try { BCTransferParameter para = new BCTransferParameter(); para.channel = BCPay.TransferChannel.WX_TRANSFER.ToString(); para.transferNo = "1000000000"; para.totalFee = 100; para.desc = "C# 单笔打款"; para.channelUserId = "XXXXXXXXXXXXXXXXXX"; BCPay.BCTransfer(para); Response.Write("完成"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } } else if (type == "wxredpack") { BCRedPackInfo info = new BCRedPackInfo(); info.actName = "C# 红包"; info.sendName = "BeeCloud"; info.wishing = "啦啦啦"; try { BCTransferParameter para = new BCTransferParameter(); para.channel = BCPay.TransferChannel.WX_REDPACK.ToString(); para.transferNo = "1000000001"; para.totalFee = 100; para.desc = "C# 红包"; para.channelUserId = "XXXXXXXXXXXXXXXX"; para.info = info; BCPay.BCTransfer(para); Response.Write("完成"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } } else if (type == "bctransfer") { //getBankFullNames方法可以获取所有支持的银行全称,将全称填写到BCTransferWithBackCard里的bank_fullname字段 BankList banks = BCPay.getBankFullNames("P_CR"); foreach (var bank in banks.bankList) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + bank.ToString() + "</span><br/>"); } BCTransferWithBackCard transfer = new BCTransferWithBackCard(1, BCUtil.GetUUID(), ".net测试代付", "OUT_PC", "中国银行", "DE", "P", "xxxxxxxxxxxx", "xxx"); transfer.mobile = "xxxxxxxxxxxxxx"; try { transfer = BCPay.BCBankCardTransfer(transfer); Response.Write("<span style='color:#00CD00;font-size:20px'>已代付</span><br/>"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } } else if (type == "bccjtransfer") { BCCJTransferWithBackCard transfer = new BCCJTransferWithBackCard(BCUtil.GetUUID(), ".net测试代付", 100, "姓名", "银行名", "卡号", "支行名", "省", "市", "DEBIT", "C"); try { transfer = BCPay.BCCJBankCardTransfer(transfer); Response.Write("<span style='color:#00CD00;font-size:20px'>已代付</span><br/>"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } } Response.Write("<span style='color:#00CD00;font-size:20px'>" + type + "</span>"); }
//准备代付参数 public static string prepareBCTransferWithBankCard(BCTransferWithBackCard transfer) { 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["total_fee"] = transfer.totalFee; data["bill_no"] = transfer.billNo; data["title"] = transfer.title; data["trade_source"] = transfer.tradeSource; data["bank_fullname"] = transfer.bankFullName; data["card_type"] = transfer.cardType; data["account_type"] = transfer.accountType; data["account_no"] = transfer.accountNo; data["account_name"] = transfer.accountName; data["mobile"] = transfer.mobile; if (transfer.optional != null && transfer.optional.Count > 0) { data["optional"] = new JsonData(); foreach (string key in transfer.optional.Keys) { data["optional"][key] = transfer.optional[key]; } } string paraString = data.ToJson(); return paraString; }
/// <summary> /// BC银行卡代付 /// </summary> /// <param name="transfer">具体参考初始化BCTransferWithBackCard</param> /// <returns></returns> public static BCTransferWithBackCard BCBankCardTransfer(BCTransferWithBackCard transfer) { string transferUrl = BCPrivateUtil.getHost() + BCConstants.version + BCConstants.bctransferURL; string paraString = prepareBCTransferWithBankCard(transfer); try { HttpWebResponse response = BCPrivateUtil.CreatePostHttpResponse(transferUrl, paraString, BCCache.Instance.networkTimeout); string respString = BCPrivateUtil.GetResponseString(response); return handleBCTransferWithBankCardResult(respString, transfer); } catch (Exception e) { var ex = new BCException(e.Message); throw ex; } }
//处理代付回调 public static BCTransferWithBackCard handleBCTransferWithBankCardResult(string respString, BCTransferWithBackCard transfer) { JsonData responseData = JsonMapper.ToObject(respString); if (responseData["result_code"].ToString() == "0") { transfer.id = responseData["id"].ToString(); return transfer; } else { var ex = new BCException(responseData["err_detail"].ToString()); throw ex; } }