コード例 #1
0
        public override ComLibrary.BaseResponse doQuery()
        {
            BaseResponse                sandResponse = new SandResponse();
            JavaScriptSerializer        jsonSer      = new JavaScriptSerializer();
            Dictionary <string, string> dicRslt;

            MessageCryptWorker.trafficMessage resp = QueryOrderMessage(this.requestDic, this.pfxPath, this.pfxPwd, this.cerPath, this.mchId);
            //检查验签结果
            log.Write("验签结果" + resp.sign);
            //解析报文,读取业务报文体内具体字段的值
            log.Write(resp.encryptData, MsgType.Information);
            dicRslt = jsonSer.Deserialize <Dictionary <string, string> >(resp.encryptData);
            //dicRslt = (Dictionary<string, string>)JsonUtil.JsonToObject(resp.encryptData, dicRslt);
            sandResponse.orderId     = dicRslt.ContainsKey("orderCode") ? dicRslt["orderCode"] : "";
            sandResponse.respCode    = dicRslt.ContainsKey("respCode") ? dicRslt["respCode"] : "";
            sandResponse.respMsg     = dicRslt.ContainsKey("respDesc") ? dicRslt["respDesc"] : "";
            sandResponse.bankOrderNo = dicRslt.ContainsKey("sandSerial") ? dicRslt["sandSerial"] : "";
            string resultFlag = dicRslt.ContainsKey("resultFlag") ? dicRslt["resultFlag"] : "";

            log.Write("respCode[" + sandResponse.respCode + "]" + "respDesc[" + sandResponse.respMsg + "]");

            sandResponse.status = "0";
            if ("0000".Equals(sandResponse.respCode))
            {
                if ("0".Equals(resultFlag))
                {
                    sandResponse.status = "1";
                }
                else if ("1".Equals(resultFlag))
                {
                    sandResponse.status = "2";
                }
            }
            return(sandResponse);
        }
コード例 #2
0
        /// <summary>
        /// 代付接口提交
        /// </summary>
        /// <param name="dic"></param>
        /// <param name="pfxFilePath"></param>
        /// <param name="pfxPassword"></param>
        /// <param name="cerFilePath"></param>
        /// <param name="merId"></param>
        /// <returns></returns>
        private MessageCryptWorker.trafficMessage AgentPayMessage(Dictionary <string, string> dic, string pfxFilePath,
                                                                  string pfxPassword,
                                                                  string cerFilePath,
                                                                  string merId)
        {
            //dic.Add("version", "01");
            //dic.Add("productId", "00000003");// 代收对公    00000001 代收对私    00000002  代付对私    00000004
            //dic.Add("tranTime", "20161114123021");
            //dic.Add("orderCode", "20161113000000001038");
            //dic.Add("timeOut", "20161115123021");
            //dic.Add("tranAmt", "000000000001");
            //dic.Add("currencyCode", "156");
            //dic.Add("accAttr", "0");
            //dic.Add("accType", "2");
            //dic.Add("accNo", "6216261000000000018");
            //dic.Add("accName", "啊啊");
            //dic.Add("bankName", "aaa");
            //dic.Add("bankType", "1234567890");
            //dic.Add("remark", "pay");
            //dic.Add("reqReserved", "");
            //dic.Add("noticeUrl", "");
            //dic.Add("extend", "");
            //报文结构体初始化
            MessageCryptWorker.trafficMessage msgRequestSource = new MessageCryptWorker.trafficMessage();
            //发送类实体化
            MessageCryptWorker worker = new MessageCryptWorker();

            worker.EncodeCode = Encoding.UTF8; //encoding 使用utf8

            worker.PFXFile     = pfxFilePath;  //商户pfx证书路径
            worker.PFXPassword = pfxPassword;  //商户pfx证书密码
            worker.CerFile     = cerFilePath;  //杉德cer证书路径


            msgRequestSource.merId     = merId;  //商户号
            msgRequestSource.transCode = "RTPM"; //交易代码
            msgRequestSource.extend    = "";     //扩展域

            //报文体json
            JavaScriptSerializer jsonSer = new JavaScriptSerializer();

            msgRequestSource.encryptData = jsonSer.Serialize(dic);
            //encrytpKey会在发送前加密时自动生成16位的随机字符


            log.Write("待发送报文为:" + msgRequestSource.encryptData);
            //string ServerUrl = "http://61.129.71.103:7970/agent-main/openapi/agentpay";
            string ServerUrl = "https://caspay.sandpay.com.cn/agent-main/openapi/agentpay";

            MessageCryptWorker.trafficMessage respMessage = worker.postMessage(ServerUrl, msgRequestSource);
            log.Write("服务器返回为:" + respMessage.encryptData);

            return(respMessage);
        }
コード例 #3
0
        /// <summary>
        ///代扣提交
        /// </summary>
        /// <param name="dic"></param>
        /// <param name="mchId"></param>
        /// <param name="pfxPath"></param>
        /// <param name="pfxPwd"></param>
        /// <param name="cerPath"></param>
        /// <returns></returns>
        private MessageCryptWorker.trafficMessage CollectionMessage(Dictionary <string, string> dic, string mchId, string pfxPath, string pfxPwd, string cerPath)
        {
            //报文结构体初始化
            MessageCryptWorker.trafficMessage msgRequestSource = new MessageCryptWorker.trafficMessage();
            //dic.Add("version", "01");
            //dic.Add("cityNo", "010000");
            //dic.Add("certType", "0001");
            //dic.Add("productId", "00000002");
            //dic.Add("purpose", "collection");
            //dic.Add("accNo", "6226220209634996");
            //dic.Add("accName", "TEST");
            //dic.Add("bankInsCode", "48270000");
            //dic.Add("bankName", "世界银行");
            //dic.Add("accAttr", "0");
            //dic.Add("timeOut", "20161115123021");
            //dic.Add("certNo", "321281198702253717");
            //dic.Add("tranTime", "20161114123021");
            //dic.Add("provNo", "010000");
            //dic.Add("phone", "12345678901");
            //dic.Add("cardId", "321281198702253717");
            //dic.Add("tranAmt", "000000000100");
            //dic.Add("orderCode", "201611131000001042");
            //dic.Add("accType", "4");
            //dic.Add("currencyCode", "156");



            //发送类实体化
            MessageCryptWorker worker = new MessageCryptWorker();

            worker.EncodeCode  = Encoding.UTF8; //encoding 使用utf8
            worker.PFXFile     = pfxPath;       //商户pfx证书路径
            worker.PFXPassword = pfxPwd;        //商户pfx证书密码
            worker.CerFile     = cerPath;       //杉德cer证书路径
            //string ServerUrl = "http://61.129.71.103:7970/agent-main/openapi/collection";
            string ServerUrl = "https://caspay.sandpay.com.cn/agent-main/openapi/collection";

            msgRequestSource.merId     = mchId;  //商户号
            msgRequestSource.transCode = "RTCO"; //交易代码
            msgRequestSource.extend    = "";     //扩展域

            //报文体json
            JavaScriptSerializer jsonSer = new JavaScriptSerializer();

            msgRequestSource.encryptData = jsonSer.Serialize(dic);
            //msgRequestSource.encryptData = JsonUtil.ObjectToJson(dic);
            //encrytpKey会在发送前加密时自动生成16位的随机字符

            log.Write("待发送报文为:" + msgRequestSource.encryptData);

            MessageCryptWorker.trafficMessage respMessage = worker.postMessage(ServerUrl, msgRequestSource);
            log.Write("服务器返回为:" + respMessage.encryptData);
            return(respMessage);
        }
コード例 #4
0
        /// <summary>
        /// 订单查询
        /// </summary>
        /// <param name="dic"></param>
        /// <param name="pfxFilePath"></param>
        /// <param name="pfxPassword"></param>
        /// <param name="cerFilePath"></param>
        /// <param name="merId"></param>
        /// <returns></returns>
        private MessageCryptWorker.trafficMessage QueryOrderMessage(Dictionary <string, string> dic, string pfxFilePath,
                                                                    string pfxPassword,
                                                                    string cerFilePath,
                                                                    string merId)
        {
            //报文结构体初始化
            MessageCryptWorker.trafficMessage msgRequestSource = new MessageCryptWorker.trafficMessage();
            //发送类实体化
            MessageCryptWorker worker = new MessageCryptWorker();

            worker.EncodeCode = Encoding.UTF8; //encoding 使用utf8

            worker.PFXFile     = pfxFilePath;  //商户pfx证书路径
            worker.PFXPassword = pfxPassword;  //商户pfx证书密码
            worker.CerFile     = cerFilePath;  //杉德cer证书路径


            msgRequestSource.merId     = merId;  //商户号
            msgRequestSource.transCode = "ODQU"; //交易代码
            msgRequestSource.extend    = "";     //扩展域

            //报文体json
            JavaScriptSerializer jsonSer = new JavaScriptSerializer();

            msgRequestSource.encryptData = jsonSer.Serialize(dic);
            //encrytpKey会在发送前加密时自动生成16位的随机字符

            log.Write("待发送报文为:" + msgRequestSource.encryptData);
            //string ServerUrl = "http://61.129.71.103:7970/agent-main/openapi/queryOrder";
            string ServerUrl = "https://caspay.sandpay.com.cn/agent-main/openapi/queryOrder";

            MessageCryptWorker.trafficMessage respMessage = worker.postMessage(ServerUrl, msgRequestSource);

            log.Write("服务器返回为:" + respMessage.encryptData);
            return(respMessage);
        }