public string RequestPay(string ordernum, string return_url, double?PayMoney, string ProductName, string Remark)
        {
            //创建PayRequestHandler实例
            PayRequestHandler reqHandler = new PayRequestHandler(context);

            Model.SitePayAPI m_entity = Model.SitePayAPI.GetModel(t => t.ApiType == "财付通");
            //商户号
            string bargainor_id = m_entity.AppIdentity;

            //设置密钥
            reqHandler.setKey(m_entity.AppKey);

            //初始化
            reqHandler.init();

            //当前时间 yyyyMMdd
            string date = DateTime.Now.ToString("yyyyMMdd");

            //生成订单10位序列号,此处用时间和随机数生成,商户根据自己调整,保证唯一
            string strReq = DateTime.Now.ToString("HHmmss") + TenpayUtil.BuildRandomStr(4);


            //财付通订单号,10位商户号+8位日期+10位序列号,需保证全局唯一
            string transaction_id = bargainor_id + date + strReq;


            //-----------------------------
            //设置支付参数
            //-----------------------------
            reqHandler.setParameter("bargainor_id", bargainor_id);                    //商户号
            reqHandler.setParameter("sp_billno", ordernum);                           //商家订单号
            reqHandler.setParameter("transaction_id", transaction_id);                //财付通交易单号
            reqHandler.setParameter("return_url", return_url);                        //支付通知url
            reqHandler.setParameter("desc", ProductName);                             //商品名称
            reqHandler.setParameter("attach", Remark == null?"":Remark);              //会员ID
            reqHandler.setParameter("total_fee", ((int)(PayMoney * 100)).ToString()); //商品金额,以分为单位


            //用户ip,测试环境时不要加这个ip参数,正式环境再加此参数
            reqHandler.setParameter("spbill_create_ip", DealMvc.Common.Globals.GetUserIP());

            //获取请求带参数的url
            string requestUrl = reqHandler.getRequestURL();

            return(requestUrl);
            //FinalMessage("正在进入财付通网站...", requestUrl, 0, 4);
        }
Exemple #2
0
        /// <summary>
        /// 财付通接口
        /// </summary>
        /// <param name="desc">商品名</param>
        /// <param name="sp_billno">订单号</param>
        /// <param name="total_fee">货品总价格</param>
        /// <returns></returns>
        public string GetTenpayUrl(string desc, string orderid, string total_fee, string returnurl)
        {
            //创建PayRequestHandler实例
            PayRequestHandler reqHandler = new PayRequestHandler(context);

            reqHandler.YinHang = Yinhang;
            Model.SitePayAPI m_entity = Model.SitePayAPI.GetModel(t => t.ApiType == "财付通");
            //设置密钥
            reqHandler.setKey(m_entity.AppKey);
            //初始化
            reqHandler.init();
            //当前时间 yyyyMMdd
            string date = DateTime.Now.ToString("yyyyMMdd");

            //生成订单10位序列号,此处用时间和随机数生成,商户根据自己调整,保证唯一
            string sp_billno = DateTime.Now.ToString("HHmmss") + JumbotCms.API.Tenpay.TenpayUtil.BuildRandomStr(4);
            //商户号
            string bargainor_id = m_entity.AppIdentity;// "1208389301";

            //财付通订单号,10位商户号+8位日期+10位序列号,需保证全局唯一
            string transaction_id = bargainor_id + date + sp_billno;

            //test******
            //double PayMoney_test = 0.01;


            //订单编号
            string TenpaySN = transaction_id;

            //-----------------------------
            //设置支付参数
            //-----------------------------
            reqHandler.setParameter("bargainor_id", m_entity.AppIdentity);                              //商户号
            reqHandler.setParameter("sp_billno", sp_billno);                                            //商家订单号
            reqHandler.setParameter("transaction_id", transaction_id);                                  //财付通交易单号
            reqHandler.setParameter("return_url", Common.Globals.GetHostUrlWeb() + returnurl);          //支付通知url
            reqHandler.setParameter("desc", desc);                                                      //商品名称
            reqHandler.setParameter("attach", orderid);                                                 //订单ID
            reqHandler.setParameter("total_fee", ((total_fee.ToDouble2() * 100).ToInt32()).ToString()); //商品金额,以分为单位


            //用户ip,测试环境时不要加这个ip参数,正式环境再加此参数
            reqHandler.setParameter("spbill_create_ip", DealMvc.Common.Globals.GetUserIP());

            //获取请求带参数的url
            return(reqHandler.getRequestURL());
        }
        /// <summary>
        /// 添加/编辑
        /// </summary>
        /// <param name="isEdit"></param>
        /// <param name="p_SitePayAPI"></param>
        public void AESitePayAPI(DealMvc.ControllerBase _CB, bool isEdit, ref Model.SitePayAPI p_spapi)
        {
            Model.SitePayAPI m_spapi = null;

            if (isEdit)
            {
                m_spapi = DealMvc.Model.SitePayAPI.GetModel(p_spapi.id ?? 0);
            }
            else
            {
                m_spapi = new Model.SitePayAPI();
            }

            if (!isEdit)
            {
                if (Orm.EntityCore <Model.SitePayAPI> .Exists("=id", new object[] { p_spapi.id }))
                {
                    throw new ExceptionEx.MyExceptionMessageBox("已经存在此记录");
                }
            }
            else
            {
            }

            m_spapi.ApiType     = p_spapi.ApiType;                //ApiType[Type=string] - API类型
            m_spapi.Account     = p_spapi.Account;                //Account[Type=string] - 签约账号
            m_spapi.AppIdentity = p_spapi.AppIdentity;            //AppIdentity[Type=string] - 合作者身份
            m_spapi.AppKey      = p_spapi.AppKey;                 //AppKey[Type=string] - 密钥
            m_spapi.UpTime      = p_spapi.UpTime ?? DateTime.Now; //UpTime[Type=DateTime?] - 更新时间


            p_spapi = m_spapi;
            if (isEdit)
            {
                m_spapi.Update();
                ExceptionEx.MyExceptionLog.AlertMessage(_CB, "修改网站支付信息成功");
                _CB.IsSaveForm = true;
            }
            else
            {
                m_spapi.Add();
                ExceptionEx.MyExceptionLog.AlertMessage(_CB, "添加成功", true);
            }
        }