Beispiel #1
0
        //分润业务
        private void RoyaltyBusiness(string out_trade_no, string trade_no)
        {
            var royaltyServer = new AlipayRoyaltyBLL(Default.GetLoggingSession());
            var ds            = royaltyServer.GetAlipayRoyalty(out_trade_no);

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var dr = ds.Tables[0].Rows[0];

                var out_bill_no = GetDataRandom();
                BaseService.WriteLog("分润号: " + out_bill_no);
                var royalty = new DistributeRoyalty();
                var result  = royalty.SubmitDistribute(out_bill_no, out_trade_no, trade_no, dr["royalty_parameters"].ToString());
                BaseService.WriteLog("调用分润接口返回结果: " + result);

                var entity = new AlipayRoyaltyEntity()
                {
                    RoyaltyID = dr["royalty_id"].ToString(),
                    TradeNo   = trade_no,
                    Result    = result
                };

                royaltyServer.Update(entity, false);
            }
            else
            {
                BaseService.WriteLog("查询没有结果集");
            }
        }
Beispiel #2
0
        private void Submit()
        {
            BaseService.WriteLog("支付宝交易开始-----------------------AlipayWapTrade2/Trade.aspx");
            BaseService.WriteLog("调用授权接口alipay.wap.trade.create.direct获取授权码token");
            ////////////////////////////////////////////调用授权接口alipay.wap.trade.create.direct获取授权码token////////////////////////////////////////////

            string order_id      = string.Empty;
            string call_back_url = AlipayConfig.Merchant_url;

            //订单号
            if (!string.IsNullOrEmpty(Request["order_id"]))
            {
                order_id = Request["order_id"].Trim();
                BaseService.WriteLog("order_id:  " + Request["order_id"]);
            }
            else
            {
                BaseService.WriteLog("请求参数order_id is null!!!!!");
            }
            //产品名称
            if (!string.IsNullOrEmpty(Request["prod_name"]))
            {
                AlipayConfig.Subject = Request["prod_name"].Trim();
                BaseService.WriteLog("prod_name:  " + Request["prod_name"]);
            }
            else
            {
                BaseService.WriteLog("请求参数prod_name is null!!!!!");
            }
            //产品价格
            if (!string.IsNullOrEmpty(Request["prod_price"]))
            {
                AlipayConfig.Total_fee = Request["prod_price"].Trim();
                BaseService.WriteLog("prod_price:  " + Request["prod_price"]);
            }
            else
            {
                BaseService.WriteLog("请求参数prod_price is null!!!!!");
            }
            //用户付款中途退出返回URL
            if (!string.IsNullOrEmpty(Request["merchant_url"]))
            {
                AlipayConfig.Merchant_url = Request["merchant_url"].Trim();
                BaseService.WriteLog("merchant_url:  " + Request["merchant_url"]);
            }
            else
            {
                BaseService.WriteLog("请求参数merchant_url is null!!!!!");
            }
            //用户付款成功同步返回URL
            if (!string.IsNullOrEmpty(Request["call_back_url"]))
            {
                call_back_url = Request["call_back_url"].Trim();
                BaseService.WriteLog("call_back_url:  " + Request["call_back_url"]);
            }
            else
            {
                BaseService.WriteLog("请求参数call_back_url is null!!!!!");
            }

            AlipayConfig.Req_id       = System.Guid.NewGuid().ToString().Replace("-", "");
            AlipayConfig.Out_trade_no = System.Guid.NewGuid().ToString().Replace("-", "");

            //分润参数
            if (!string.IsNullOrEmpty(Request["params"]))
            {
                BaseService.WriteLog("params:  " + Request["params"]);

                var entity = new AlipayRoyaltyEntity()
                {
                    RoyaltyID         = System.Guid.NewGuid().ToString().Replace("-", ""),
                    OutTradeNo        = AlipayConfig.Out_trade_no,
                    RoyaltyParameters = Request["params"]
                };

                //保存分润参数到数据库
                var royaltyServer = new AlipayRoyaltyBLL(Default.GetLoggingSession());
                royaltyServer.Create(entity);
            }
            else
            {
                BaseService.WriteLog("请求参数params is null!!!!!");
            }

            //请求业务参数详细
            string req_dataToken = ""
                                   + "<direct_trade_create_req>"
                                   + "<notify_url>" + AlipayConfig.Notify_url + "</notify_url>"
                                   + "<call_back_url>" + AlipayConfig.Call_back_url + "</call_back_url>"
                                   + "<seller_account_name>" + AlipayConfig.Seller_account_name + "</seller_account_name>"
                                   + "<out_trade_no>" + AlipayConfig.Out_trade_no + "</out_trade_no>"
                                   + "<subject>" + AlipayConfig.Subject + "</subject>"
                                   + "<total_fee>" + AlipayConfig.Total_fee + "</total_fee>"
                                   + "</direct_trade_create_req>";

            BaseService.WriteLog("请求业务参数详细: " + req_dataToken);

            //把请求参数打包成数组
            Dictionary <string, string> sParaTempToken = new Dictionary <string, string>();

            sParaTempToken.Add("partner", AlipayConfig.Partner);
            sParaTempToken.Add("_input_charset", AlipayConfig.Input_charset.ToLower());
            sParaTempToken.Add("sec_id", AlipayConfig.Sign_type.ToUpper());
            sParaTempToken.Add("service", AlipayConfig.Service_Create);
            sParaTempToken.Add("format", AlipayConfig.Format);
            sParaTempToken.Add("v", AlipayConfig.V);
            sParaTempToken.Add("req_id", AlipayConfig.Req_id);
            sParaTempToken.Add("req_data", req_dataToken);

            //建立请求
            string sHtmlTextToken = AlipaySubmit.BuildRequest(AlipayConfig.Req_url, sParaTempToken);
            //URLDECODE返回的信息
            Encoding code = Encoding.GetEncoding(AlipayConfig.Input_charset);

            sHtmlTextToken = HttpUtility.UrlDecode(sHtmlTextToken, code);

            //解析远程模拟提交后返回的信息
            Dictionary <string, string> dicHtmlTextToken = AlipaySubmit.ParseResponse(sHtmlTextToken);

            //获取token
            string request_token = dicHtmlTextToken["request_token"];

            BaseService.WriteLog("根据授权码token调用交易接口alipay.wap.auth.authAndExecute");
            ////////////////////////////////////////////根据授权码token调用交易接口alipay.wap.auth.authAndExecute////////////////////////////////////////////

            //业务详细
            string req_data = ""
                              + "<auth_and_execute_req>"
                              + "<request_token>" + request_token + "</request_token>"
                              + "</auth_and_execute_req>";

            BaseService.WriteLog("业务详细: " + req_data);

            //把请求参数打包成数组
            Dictionary <string, string> sParaTemp = new Dictionary <string, string>();

            sParaTemp.Add("partner", AlipayConfig.Partner);
            sParaTemp.Add("_input_charset", AlipayConfig.Input_charset.ToLower());
            sParaTemp.Add("sec_id", AlipayConfig.Sign_type.ToUpper());
            sParaTemp.Add("service", AlipayConfig.Service_Execute);
            sParaTemp.Add("format", AlipayConfig.Format);
            sParaTemp.Add("v", AlipayConfig.V);
            sParaTemp.Add("req_data", req_data);

            BaseService.WriteLog("保存交易记录到数据库");

            var alipayEntity = new AlipayWapTradeResponseEntity()
            {
                ResponseID  = System.Guid.NewGuid().ToString().Replace("-", ""),
                OrderID     = order_id,
                OutTradeNo  = AlipayConfig.Out_trade_no,
                Subject     = AlipayConfig.Subject,
                TotalFee    = AlipayConfig.Total_fee,
                MerchantUrl = AlipayConfig.Merchant_url,
                CallBackUrl = call_back_url,
                Status      = "1"
            };

            //保存交易记录到数据库
            AlipayWapTradeResponseBLL alipayServer = new AlipayWapTradeResponseBLL(new Utility.BasicUserInfo());

            alipayServer.Create(alipayEntity);

            //建立请求
            string sHtmlText = AlipaySubmit.BuildRequest(AlipayConfig.Req_url, sParaTemp, "get", "确认");

            Response.Write(sHtmlText);
        }
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Update(AlipayRoyaltyEntity pEntity, IDbTransaction pTran)
 {
     Update(pEntity, true, pTran);
 }
 public void Update(AlipayRoyaltyEntity pEntity, bool pIsUpdateNullField, IDbTransaction pTran)
 {
     _currentDAO.Update(pEntity, pIsUpdateNullField, pTran);
 }
 /// <summary>
 /// 创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Create(AlipayRoyaltyEntity pEntity)
 {
     _currentDAO.Create(pEntity);
 }
 /// <summary>
 /// 在事务内创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Create(AlipayRoyaltyEntity pEntity, IDbTransaction pTran)
 {
     _currentDAO.Create(pEntity, pTran);
 }
 /// <summary>
 /// 分页根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public PagedQueryResult <AlipayRoyaltyEntity> PagedQueryByEntity(AlipayRoyaltyEntity pQueryEntity, OrderBy[] pOrderBys, int pPageSize, int pCurrentPageIndex)
 {
     return(_currentDAO.PagedQueryByEntity(pQueryEntity, pOrderBys, pPageSize, pCurrentPageIndex));
 }
 /// <summary>
 /// 根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public AlipayRoyaltyEntity[] QueryByEntity(AlipayRoyaltyEntity pQueryEntity, OrderBy[] pOrderBys)
 {
     return(_currentDAO.QueryByEntity(pQueryEntity, pOrderBys));
 }
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="pEntity"></param>
 public void Delete(AlipayRoyaltyEntity pEntity)
 {
     _currentDAO.Delete(pEntity);
 }
 public void Update(AlipayRoyaltyEntity pEntity, bool pIsUpdateNullField)
 {
     _currentDAO.Update(pEntity, pIsUpdateNullField);
 }
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Update(AlipayRoyaltyEntity pEntity)
 {
     Update(pEntity, true);
 }