示例#1
0
文件: Buy.cs 项目: kevin4044/ssc
        /// <summary>
        /// ��ѯ������ϸ
        /// </summary>
        /// <param name="p1_MerId">�̻����</param>
        /// <param name="keyValue">�̻���Կ</param>
        /// <param name="p2_Order">�̻�������</param>
        /// <returns>BuyQueryOrdDetailResult</returns>
        public static BuyQueryOrdDetailResult QueryOrdDetail(string p2_Order)
        {
            string sbOld = "";

            sbOld += "QueryOrdDetail";
            sbOld += merchantId;
            sbOld += p2_Order;

               string hmac = Digest.HmacSign(sbOld, keyValue);
               logstr(p2_Order, sbOld, hmac);
               string para = "";

            para += "?p0_Cmd=QueryOrdDetail";
            para += "&p1_MerId=" + merchantId;	    	//�����̼�ID
            para += "&p2_Order=" + p2_Order;				//���빺�򶩵�����
            para += "&hmac=" + hmac;      	    //��������

            logstr(p2_Order, queryRefundReqURL+para, "");

               string reqResult = HttpUtils.SendRequest(queryRefundReqURL, para);
            //��¼��ѯͨѶ����
            logstr(p2_Order, reqResult,"");
            string r0_Cmd		= FormatQueryString.GetQueryString("r0_Cmd", reqResult, '\n');
            string r1_Code		= FormatQueryString.GetQueryString("r1_Code", reqResult, '\n');
            string p1_MerId     = FormatQueryString.GetQueryString("p1_MerId", reqResult, '\n');
            string r2_TrxId		= FormatQueryString.GetQueryString("r2_TrxId", reqResult, '\n');
            string r3_Amt		= FormatQueryString.GetQueryString("r3_Amt", reqResult, '\n');

            string r4_Cur		= FormatQueryString.GetQueryString("r4_Cur", reqResult, '\n');
            string r5_Pid       = FormatQueryString.GetQueryString("r5_Pid", reqResult, '\n');
            string r6_Order		= FormatQueryString.GetQueryString("r6_Order", reqResult, '\n');
            string r8_MP        = FormatQueryString.GetQueryString("r8_MP", reqResult, '\n');
            string rb_PayStatus = FormatQueryString.GetQueryString("rb_PayStatus", reqResult, '\n');
            string rc_RefundCount = FormatQueryString.GetQueryString("rc_RefundCount", reqResult, '\n');

            string rd_RefundAmt = FormatQueryString.GetQueryString("rd_RefundAmt", reqResult, '\n');
            hmac = FormatQueryString.GetQueryString("hmac", reqResult, '\n');
            //�鵥����У��hmac
            sbOld = "";
            sbOld += r0_Cmd;
            sbOld += r1_Code;
            sbOld += p1_MerId;
            sbOld += r2_TrxId;
            sbOld += r3_Amt;

            sbOld += r4_Cur;
            sbOld += r5_Pid;
            sbOld += r6_Order;
            sbOld += r8_MP;
            sbOld += rb_PayStatus;
            sbOld += rc_RefundCount;

            sbOld += rd_RefundAmt;

            string nhmac = Digest.HmacSign(sbOld,keyValue);
            logstr(p2_Order,sbOld,nhmac);
            if (hmac == nhmac)
            {
                BuyQueryOrdDetailResult result = new BuyQueryOrdDetailResult(r0_Cmd, r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid,
             r6_Order, r8_MP, rb_PayStatus, rc_RefundCount, rd_RefundAmt, hmac, "");

                return result;
            }
            else
            {
                BuyQueryOrdDetailResult result = new BuyQueryOrdDetailResult(r0_Cmd, r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid,
             r6_Order, r8_MP, rb_PayStatus, rc_RefundCount, rd_RefundAmt, hmac, "����ǩ����Ч");

                return result;
            }
        }
示例#2
0
        /// <summary>
        /// 查询订单明细
        /// </summary>
        /// <param name="p1_MerId">商户编号</param>
        /// <param name="keyValue">商户密钥</param>
        /// <param name="p2_Order">商户订单号</param>
        /// <returns>BuyQueryOrdDetailResult</returns>
        public static BuyQueryOrdDetailResult QueryOrdDetail(string p2_Order)
        {
            string sbOld = "";

            sbOld += "QueryOrdDetail";
            sbOld += merchantId;
            sbOld += p2_Order;
            string hmac = Digest.HmacSign(sbOld, keyValue);

            logstr(p2_Order, sbOld, hmac);
            string para = "";

            para += "?p0_Cmd=QueryOrdDetail";
            para += "&p1_MerId=" + merchantId;      //加入商家ID
            para += "&p2_Order=" + p2_Order;        //加入购买订单号码
            para += "&hmac=" + hmac;                //加入校验码
            logstr(p2_Order, queryRefundReqURL + para, "");
            string reqResult = HttpUtils.SendRequest(queryRefundReqURL, para);

            //记录查询通讯返回
            logstr(p2_Order, reqResult, "");
            string r0_Cmd         = FormatQueryString.GetQueryString("r0_Cmd", reqResult, '\n');
            string r1_Code        = FormatQueryString.GetQueryString("r1_Code", reqResult, '\n');
            string p1_MerId       = FormatQueryString.GetQueryString("p1_MerId", reqResult, '\n');
            string r2_TrxId       = FormatQueryString.GetQueryString("r2_TrxId", reqResult, '\n');
            string r3_Amt         = FormatQueryString.GetQueryString("r3_Amt", reqResult, '\n');
            string r4_Cur         = FormatQueryString.GetQueryString("r4_Cur", reqResult, '\n');
            string r5_Pid         = FormatQueryString.GetQueryString("r5_Pid", reqResult, '\n');
            string r6_Order       = FormatQueryString.GetQueryString("r6_Order", reqResult, '\n');
            string r8_MP          = FormatQueryString.GetQueryString("r8_MP", reqResult, '\n');
            string rb_PayStatus   = FormatQueryString.GetQueryString("rb_PayStatus", reqResult, '\n');
            string rc_RefundCount = FormatQueryString.GetQueryString("rc_RefundCount", reqResult, '\n');
            string rd_RefundAmt   = FormatQueryString.GetQueryString("rd_RefundAmt", reqResult, '\n');

            hmac = FormatQueryString.GetQueryString("hmac", reqResult, '\n');
            //查单返回校验hmac
            sbOld  = "";
            sbOld += r0_Cmd;
            sbOld += r1_Code;
            sbOld += p1_MerId;
            sbOld += r2_TrxId;
            sbOld += r3_Amt;
            sbOld += r4_Cur;
            sbOld += r5_Pid;
            sbOld += r6_Order;
            sbOld += r8_MP;
            sbOld += rb_PayStatus;
            sbOld += rc_RefundCount;
            sbOld += rd_RefundAmt;
            string nhmac = Digest.HmacSign(sbOld, keyValue);

            logstr(p2_Order, sbOld, nhmac);
            if (hmac == nhmac)
            {
                BuyQueryOrdDetailResult result = new BuyQueryOrdDetailResult(r0_Cmd, r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid,
                                                                             r6_Order, r8_MP, rb_PayStatus, rc_RefundCount, rd_RefundAmt, hmac, "");
                return(result);
            }
            else
            {
                BuyQueryOrdDetailResult result = new BuyQueryOrdDetailResult(r0_Cmd, r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid,
                                                                             r6_Order, r8_MP, rb_PayStatus, rc_RefundCount, rd_RefundAmt, hmac, "交易签名无效");
                return(result);
            }
        }