/// <summary>
        /// 冲正预处理
        /// </summary>
        /// <param name="creditCard">银行卡信息</param>
        /// <param name="preMsg">上次支付的信息</param>
        /// <returns></returns>
        public byte[] CancelPay(CreditCard creditCard, byte[] preMsg, string posSerialNo)
        {
            IPayPreTeatment payPreObj =
                PaymentPlatFormFactory.GetPayPreTreatmentFactory().GetPayPreObj(creditCard);

            return(payPreObj.CancelPay(preMsg, creditCard, posSerialNo));
        }
Exemple #2
0
 public PayResponseModel Pay(byte[] preMsg, string mac)
 {
     try
     {
         IPay PayObj = PaymentPlatFormFactory.GetPayFactory().GetPayObj(new ICCard());
         return(PayObj.Pay(preMsg, mac));
     }
     catch (System.Exception ex)
     {
         //针对农行卡 62 开头的卡假如输入简单密码是
         //调用接口出现超时的情况。
         //进行特殊的处理 返回代码 68 :交易超时,请重试
         var w32ex = ex as Win32Exception;
         if (w32ex == null)
         {
             w32ex = ex.InnerException as Win32Exception;
         }
         if (w32ex != null && w32ex.ErrorCode.Equals(10060))
         {
             return(new PayResponseModel()
             {
                 ResponseCode = "68"
             });
         }
         else
         {
             throw ex;
         }
     }
 }
        /// <summary>
        /// 查询预处理
        /// </summary>
        /// <param name="equipment">设备信息</param>
        /// <returns></returns>
        public byte[] Query(Model.VisualSelfServiceEquipment equipment)
        {
            if (equipment == null)
            {
                throw new ArgumentException("无效的设备信息");
            }
            IPayPreTeatment payPreObj =
                PaymentPlatFormFactory.GetPayPreTreatmentFactory().GetPayPreObj(equipment.creditCard);

            return(payPreObj.Query(equipment.TerminalNo, equipment.PinBlock, equipment.creditCard));
        }
Exemple #4
0
 /// <summary>
 /// 虚拟自助设备信息
 /// </summary>
 /// <param name="equipment"></param>
 /// <returns></returns>
 public SignResponseModel Sign(Model.VisualSelfServiceEquipment equipment)
 {
     return(PaymentPlatFormFactory.GetPayUtility().Sign(equipment));
 }
Exemple #5
0
        public PayResponseModel Query(byte[] preMsg, string mac)
        {
            IPay PayObj = PaymentPlatFormFactory.GetPayFactory().GetPayObj(new ICCard());

            return(PayObj.Query(preMsg, mac));
        }