/// <summary> /// 支付宝入口请求 /// </summary> /// <param name="zfb"></param> /// <returns></returns> public string ZFBSendRequestWriter(ZFBPara_Model zfb) { //把请求参数打包成数组 SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>(); #region sParaTemp.Add("payment_type", "1"); sParaTemp.Add("out_trade_no", zfb.out_trade_no); sParaTemp.Add("subject", zfb.subject); sParaTemp.Add("body", zfb.body); sParaTemp.Add("total_fee", zfb.total_fee); //默认支付方式,代码见“即时到帐接口”技术文档 sParaTemp.Add("paymethod", ""); //默认网银代号,代号列表见“即时到帐接口”技术文档“附录”→“银行列表” sParaTemp.Add("defaultbank", ""); //防钓鱼时间戳 sParaTemp.Add("anti_phishing_key", ""); //获取客户端的IP地址,建议:编写获取客户端IP地址的程序 sParaTemp.Add("exter_invoke_ip", ""); //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上 sParaTemp.Add("extra_common_param", ""); //默认买家支付宝账号 sParaTemp.Add("buyer_email", ""); //提成类型,该值为固定值:10,不需要修改 sParaTemp.Add("royalty_type", ""); //提成信息集 sParaTemp.Add("royalty_parameters", ""); #endregion //构造即时到帐接口表单提交HTML数据,无需修改 Service ali = new Service(); string sHtmlText = ali.Create_direct_pay_by_user(sParaTemp); return sHtmlText; }
protected String BtnAlipay_Click(string Subject, string Body, string Price) { ////////////////////////////////////////////请求参数//////////////////////////////////////////// //必填参数// string out_trade_no = DateTimeOffset.Now.ToString("yyyyMMddHHmmss"); //请与贵网站订单系统中的唯一订单号匹配 string subject = Subject;//Request.Form["TxtSubject"]; //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。 string body = Body;//Request.Form["TxtBody"]; //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里 string price = Price;// Request.Form["TxtTotal_fee"]; //订单总金额,显示在支付宝收银台里的“商品单价”里 string logistics_fee = "0.00"; //物流费用,即运费。 string logistics_type = "EXPRESS"; //物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS) string logistics_payment = "SELLER_PAY"; //物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费) string quantity = "1"; //商品数量,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品。 //选填参数// //买家收货信息(推荐作为必填) //该功能作用在于买家已经在商户网站的下单流程中填过一次收货信息,而不需要买家在支付宝的付款流程中再次填写收货信息。 //若要使用该功能,请至少保证receive_name、receive_address有值 //收货信息格式请严格按照姓名、地址、邮编、电话、手机的格式填写 string receive_name = "收货人姓名"; //收货人姓名,如:张三 string receive_address = "收货人地址"; //收货人地址,如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号 string receive_zip = "123456"; //收货人邮编,如:123456 string receive_phone = "0571-81234567"; //收货人电话号码,如:0571-81234567 string receive_mobile = "13312341234"; //收货人手机号码,如:13312341234 //网站商品的展示地址,不允许加?id=123这类自定义参数 string show_url = "http://www.xxx.com/myorder.aspx"; //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组 SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>(); sParaTemp.Add("body", body); sParaTemp.Add("logistics_fee", logistics_fee); sParaTemp.Add("logistics_payment", logistics_payment); sParaTemp.Add("logistics_type", logistics_type); sParaTemp.Add("out_trade_no", out_trade_no); sParaTemp.Add("payment_type", "1"); sParaTemp.Add("price", price); sParaTemp.Add("quantity", quantity); sParaTemp.Add("receive_address", receive_address); sParaTemp.Add("receive_mobile", receive_mobile); sParaTemp.Add("receive_name", receive_name); sParaTemp.Add("receive_phone", receive_phone); sParaTemp.Add("receive_zip", receive_zip); sParaTemp.Add("show_url", show_url); sParaTemp.Add("subject", subject); //构造担保交易接口表单提交HTML数据,无需修改 Service ali = new Service(); string sHtmlText = ali.Create_partner_trade_by_buyer(sParaTemp); //Response.Write(sHtmlText); return sHtmlText; }
/// <summary> /// 返回一个html form 字符串 , /// </summary> /// <returns></returns> public string Pay() { TourLog.LogPayment("93"); //请与贵网站订单系统中的唯一订单号匹配 string out_trade_no = order.Id.ToString(); TourLog.LogPayment("93"); //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。 string subject ="中国旅游在线-在线购票-"+order.Description; TourLog.LogPayment("-"); //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里 string body = order.Description; //订单总金额,显示在支付宝收银台里的“应付总额”里 decimal total_fee =decimal.Parse( order.TotalPrice.ToString("0.00")); //扩展功能参数——默认支付方式// TourLog.LogPayment("--"); //默认支付方式,代码见“即时到帐接口”技术文档 string paymethod = ""; //默认网银代号,代号列表见“即时到帐接口”技术文档“附录”→“银行列表” string defaultbank = ""; //扩展功能参数——防钓鱼// //防钓鱼时间戳 string anti_phishing_key = ""; //获取客户端的IP地址,建议:编写获取客户端IP地址的程序 string exter_invoke_ip = ""; //注意: //请慎重选择是否开启防钓鱼功能 //exter_invoke_ip、anti_phishing_key一旦被设置过,那么它们就会成为必填参数 //建议使用POST方式请求数据 //示例: //exter_invoke_ip = ""; //Service aliQuery_timestamp = new Service(); //anti_phishing_key = aliQuery_timestamp.Query_timestamp(); //获取防钓鱼时间戳函数 //扩展功能参数——其他// //商品展示地址,要用http:// 格式的完整路径,不允许加?id=123这类自定义参数 string show_url = ""; //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上 //系统内部的支付交易号 string extra_common_param = Guid.NewGuid().ToString(); //默认买家支付宝账号 string buyer_email = ""; //扩展功能参数——分润(若要使用,请按照注释要求的格式赋值)// //提成类型,该值为固定值:10,不需要修改 string royalty_type = ""; //提成信息集 string royalty_parameters = ""; //注意: //与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条 //各分润金额的总和须小于等于total_fee //提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2 //示例: //royalty_type = "10"; //royalty_parameters = "[email protected]^0.01^分润备注一|[email protected]^0.01^分润备注二"; //把请求参数打包成数组 SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>(); sParaTemp.Add("payment_type", "1"); sParaTemp.Add("show_url", show_url); sParaTemp.Add("out_trade_no", out_trade_no); sParaTemp.Add("subject", subject); sParaTemp.Add("body", body); sParaTemp.Add("total_fee", total_fee.ToString("0.00")); sParaTemp.Add("paymethod", paymethod); sParaTemp.Add("defaultbank", defaultbank); sParaTemp.Add("anti_phishing_key", anti_phishing_key); sParaTemp.Add("exter_invoke_ip", exter_invoke_ip); sParaTemp.Add("extra_common_param", extra_common_param); sParaTemp.Add("buyer_email", buyer_email); sParaTemp.Add("royalty_type", royalty_type); sParaTemp.Add("royalty_parameters", royalty_parameters); //构造即时到帐接口表单提交HTML数据,无需修改 Service ali = new Service(); string sHtmlText = ali.Create_direct_pay_by_user(sParaTemp); TourLog.LogPayment("生成的参数是:" + sHtmlText); // Response.Write(sHtmlText); /////////////////记录支付信息///////////// Payment payment = new Payment(); payment.Order = order; payment.PayAmount =total_fee; payment.PayType = PayType.AliPay; payment.EndPay = DateTime.Now; payment.RequestStringToPay = sHtmlText; IDalPayment.Save(payment); return sHtmlText; }
/// <summary> /// 退款/退订 /// </summary> /// <returns></returns> public string PayBack(Refund refund) { // 卖家用户ID // string seller_user_id = Seller_user_id.Text.Trim(); //卖家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。 //退款批次号 string batch_no = refund.RefundSerialNo; //格式为:退款日期(8位当天日期)+流水号(3~24位,不能接受“000”,但是可以接受英文字符)。 //退款请求时间 string refund_date = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); //退款请求的当前时间。格式为:yyyy-MM-dd hh:mm:ss //退款总笔数 string batch_num = "1";//Batch_num.Text.Trim(); //即参数detail_data的值中,“#”字符出现的数量加1,最大支持1000笔(即“#”字符出现的最大数量999个)。 //单笔数据集 string detail_data = refund.Order.TradeNo + "^" +refund.TotalReturnAmount +"^" + "退款旅游" ; //退款请求的明细数据。格式详见“4.3 单笔数据集参数说明”。 //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组 SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>(); sParaTemp.Add("seller_user_id", Config.Partner); sParaTemp.Add("batch_no", batch_no); sParaTemp.Add("refund_date", refund_date); sParaTemp.Add("batch_num", batch_num); sParaTemp.Add("detail_data", detail_data); //构造即时到账批量退款有密接口表单提交HTML数据,无需修改 Service ali = new Service(); string sHtmlText = ali.Refund_fastpay_by_platform_pwd(sParaTemp); return sHtmlText; }