Ejemplo n.º 1
0
 protected function checkRequest()
 {
     if (!DataVerifier::isValidDate($this->request["OrderDate"])) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "订单日期格式不正确");
     }
     if (!DataVerifier::isValidTime($this->request["OrderTime"])) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "订单时间格式不正确");
     }
     if (!DataVerifier::isValidString($this->request["OrderNo"], ILength::ORDERID_LEN)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "交易编号不合法");
     }
     if (!DataVerifier::isValidString($this->request["AgentSignNo"], ILength::ORDERID_LEN)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "签约协议号不合法");
     }
     if ($this->request["CurrencyCode"] !== "156") {
         throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "账单币种不合法");
     }
     if (!DataVerifier::isValidAmount($this->request["Amount"], 2)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "账单金额不合法");
     }
     if (!ICommodityType::InArray($this->request["CommodityType"])) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "商品种类不合法");
     }
     if (!($this->request["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_YES) && !($this->request["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_NO)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "分期标识为空或输入非法");
     }
     if ($this->request["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_YES) {
         if (strlen($this->request["InstallmentCode"]) !== 8) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "分期代码长度应该为8位");
         }
         if (!DataVerifier::isValid($this->request["InstallmentNum"]) || strlen($this->request["InstallmentNum"]) > 2) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "分期期数非有效数字或者长度超过2");
         }
     } else {
         unset($this->order["InstallmentCode"]);
         unset($this->order["InstallmentNum"]);
     }
     if ($this->request["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_YES && $this->request["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_NO) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "交易是否分账设置异常,必须为:0或1");
     }
     $tError = $this->isValid();
     if (strlen($tError) !== 0) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "订单信息不合法![" . $tError . "]");
     }
 }
Ejemplo n.º 2
0
 private function isValid()
 {
     #region 验证$this->request信息
     if (!DataVerifier::isValidBankCardNo($this->request["CardNo"])) {
         return "支付账号不合法!";
     }
     if (!DataVerifier::isValid($this->request["MobileNo"])) {
         return "手机号不合法!";
     }
     if (!ICommodityType::InArray($this->request["CommodityType"])) {
         return "商品种类不合法";
     }
     if (!$this->request["Installment"] === IInstallmentmark::INSTALLMENTMARK_YES && !$this->request["Installment"] === IInstallmentmark::INSTALLMENTMARK_NO) {
         return "分期标识为空或输入非法";
     }
     $payTypeId = $this->order["PayTypeID"];
     if ($payTypeId === IPayTypeID::PAY_TYPE_INSTALLMENTPAY) {
         if ($this->request["Installment"] === IInstallmentmark::INSTALLMENTMARK_YES) {
             if (strlen($this->request["ProjectID"]) !== 8) {
                 return "分期代码长度应该为8位";
             }
             if (!DataVerifier::isValid($this->request["Period"]) || strlen($this->request["Period"]) > 2) {
                 return "分期期数非有效数字或者长度超过2";
             }
         }
     }
     if ($this->request["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_YES && $this->request["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_NO) {
         return "交易是否分账设置异常,必须为:0或1";
     }
     #endregion
     #region 验证order信息
     if (!$this->order["PayTypeID"] === IPayTypeID::PAY_TYPE_DIRECTPAY && !$this->order["PayTypeID"] === IPayTypeID::PAY_TYPE_INSTALLMENTPAY) {
         return "设定交易类型错误";
     }
     if ($this->order["OrderAmount"] <= 0) {
         return "订单金额小于等于零";
     }
     if (!DataVerifier::isValidString($this->order["OrderNo"], ILength::ORDERID_LEN)) {
         return "交易编号不合法";
     }
     if (strlen($this->order["OrderDesc"]) > ILength::ORDER_DESC_LEN) {
         return "订单说明超长";
     }
     if (!DataVerifier::isValidDate($this->order["OrderDate"])) {
         return "订单日期不合法";
     }
     if (!DataVerifier::isValidTime($this->order["OrderTime"])) {
         return "订单时间不合法";
     }
     if (!DataVerifier::isValidAmount($this->order["OrderAmount"], 2)) {
         return "订单金额不合法";
     }
     if ($this->order["CurrencyCode"] !== "156") {
         return "设定交易币种错误";
     }
     #endregion
     #region 验证$orderitems信息(订单明细)
     if (count($this->orderitems, COUNT_NORMAL) < 1) {
         return "商品明细为空";
     }
     foreach ($this->orderitems as $orderitem) {
         if (!DataVerifier::isValidString($orderitem["ProductName"], ILength::PRODUCTNAME_LEN)) {
             return "产品名称不合法";
         }
     }
     #endregion
     return "";
 }
 protected function checkRequest()
 {
     if (count($this->agentBatch, COUNT_NORMAL) === 0) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批次信息不允许为空");
     }
     if ((int) $this->agentBatch["AgentCount"] !== count($this->details, COUNT_NORMAL)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批内明细合计笔数(" . count($this->details, COUNT_NORMAL) . ")与批次的总笔数(" . $this->agentBatch["AgentCount"] . ")不符");
     }
     if (count($this->details, COUNT_NORMAL) > ILength::MAXSUMCOUNT) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批次的总笔数(" . count($this->details, COUNT_NORMAL) . ")超过最大限制(" . ILength::MAXSUMCOUNT . ")");
     }
     $sAgentAmount = $this->agentBatch["AgentAmount"];
     if (!((double) $sAgentAmount === (double) $this->iSumAmount)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批内明细合计金额(" . $this->agentBatch["AgentAmount"] . ")与批次的总金额(" . $this->iSumAmount . ")不符");
     }
     if (!DataVerifier::isValidString($this->agentBatch["BatchNo"], ILength::ORDERID_LEN)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批次号长度超过限制或为空");
     }
     if (!DataVerifier::isValidDate($this->agentBatch["BatchDate"])) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批次日期格式不正确");
     }
     if (!DataVerifier::isValidTime($this->agentBatch["BatchTime"])) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批次时间格式不正确");
     }
     if (!DataVerifier::isValidAmount($this->agentBatch["AgentAmount"], 2)) {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "批量授权扣款总金额不正确");
     }
     if ($this->request["CurrencyCode"] !== "156") {
         throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "币种不合法");
     }
     #endregion
     //验证dic信息
     foreach ($this->details as $detail) {
         if (!DataVerifier::isValid($detail["SeqNo"])) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "序列号不合法");
         }
         if (!DataVerifier::isValidString($detail["OrderNo"], ILength::ORDERID_LEN)) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "交易编号不合法");
         }
         if (!DataVerifier::isValidString($detail["AgentSignNo"], ILength::ORDERID_LEN)) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "授权支付签约号不合法");
         }
         if (!DataVerifier::isValidAmount($detail["OrderAmount"], 2)) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "账单金额不合法");
         }
         //if (!($detail["CommodityType"] === ICommodityType :: COMMODITY_TYPE_RECHARGE) && !($detail["CommodityType"] === ICommodityType :: COMMODITY_TYPE_CONFSUME) && !($detail["CommodityType"] === ICommodityType :: COMMODITY_TYPE_TRANSFER))
         if (!ICommodityType::InArray($detail["CommodityType"])) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "序列号" . $detail["SeqNo"] . "商品种类不合法");
         }
         if (!($detail["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_YES) && !($detail["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_NO)) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "分期标识为空或输入非法");
         }
         if ($detail["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_YES) {
             if (strlen($detail["InstallmentCode"]) !== 8) {
                 throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "分期代码长度应该为8位");
             }
             if (!DataVerifier::isValid($detail["InstallmentNum"]) || strlen($detail["InstallmentNum"]) > 2) {
                 throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "分期期数非有效数字或者长度超过2");
             }
         }
         if (!DataVerifier::isValidString($detail["ProductName"], ILength::PRODUCTNAME_LEN)) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1100, TrxException::TRX_EXC_MSG_1101, "商品名称不合法");
         }
         if ($detail["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_YES && $detail["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_NO) {
             throw new TrxException(TrxException::TRX_EXC_CODE_1101, TrxException::TRX_EXC_MSG_1101, "交易是否分账设置异常,必须为:0或1");
         }
     }
 }
Ejemplo n.º 4
0
 private function isValid()
 {
     if ($this->request["PaymentType"] === IPaymentType::PAY_TYPE_UCBP && $this->request["PaymentLinkType"] === IChannelType::PAY_LINK_TYPE_MOBILE) {
         if (!($this->request["UnionPayLinkType"] === IChannelType::UPMPLINK_TYPE_WAP) && !($this->request["UnionPayLinkType"] === IChannelType::UPMPLINK_TYPE_CLIENT)) {
             return "银联跨行移动支付接入方式不合法";
         }
     } else {
         unset($this->request["UnionPayLinkType"]);
     }
     if (!($this->request["NotifyType"] === INotifyType::NOTIFY_TYPE_URL) && !($this->request["NotifyType"] === INotifyType::NOTIFY_TYPE_SERVER)) {
         return "支付通知类型不合法!";
     }
     if (!DataVerifier::isValidURL($this->request["ResultNotifyURL"])) {
         return "支付结果回传网址不合法!";
     }
     if (strlen($this->request["MerchantRemarks"]) > 100) {
         return "附言长度大于100";
     }
     if ($this->request["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_YES && $this->request["IsBreakAccount"] !== IIsBreakAccountType::IsBreak_TYPE_NO) {
         return "交易是否分账设置异常,必须为:0或1";
     }
     //验证order信息
     $payTypeId = $this->order["PayTypeID"];
     if (!($payTypeId === IPayTypeID::PAY_TYPE_DIRECTPAY) && !($payTypeId === IPayTypeID::PAY_TYPE_PREAUTH) && !($payTypeId === IPayTypeID::PAY_TYPE_INSTALLMENTPAY)) {
         return "设定交易类型错误";
     }
     if ($payTypeId === IPayTypeID::PAY_TYPE_INSTALLMENTPAY) {
         if (!($this->order["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_YES)) {
             return "分期标识为空或输入非法";
         } else {
             if (strlen($this->order["InstallmentCode"]) !== 8) {
                 return "分期代码长度应该为8位";
             }
             if (!DataVerifier::isValid($this->order["InstallmentNum"]) || strlen($this->order["InstallmentNum"]) > 2) {
                 return "分期期数非有效数字或者长度超过2";
             }
         }
     } else {
         unset($this->order["InstallmentCode"]);
         unset($this->order["InstallmentNum"]);
     }
     if (($payTypeId === IPayTypeID::PAY_TYPE_DIRECTPAY || $payTypeId === IPayTypeID::PAY_TYPE_PREAUTH) && $this->order["InstallmentMark"] === IInstallmentmark::INSTALLMENTMARK_YES) {
         return "交易类型为直接支付或预授权支付时,分期标识不允许输入为“1”";
     }
     if (!DataVerifier::isValidString($this->order["OrderNo"], ILength::ORDERID_LEN)) {
         return "交易编号不合法";
     }
     if (!DataVerifier::isValidDate($this->order["OrderDate"])) {
         return "订单日期不合法";
     }
     if (!DataVerifier::isValidTime($this->order["OrderTime"])) {
         return "订单时间不合法";
     }
     if (!ICommodityType::InArray($this->order["CommodityType"])) {
         return "商品种类不合法";
     }
     if (!DataVerifier::isValidAmount($this->order["OrderAmount"], 2)) {
         return "订单金额不合法";
     }
     if ($this->order["CurrencyCode"] !== "156") {
         return "设定交易币种错误";
     }
     #region 验证$orderitems信息(订单明细)
     if (count($this->orderitems, COUNT_NORMAL) < 1) {
         return "商品明细为空";
     }
     foreach ($this->orderitems as $orderitem) {
         if (!DataVerifier::isValidString($orderitem["ProductName"], ILength::PRODUCTNAME_LEN)) {
             return "产品名称不合法";
         }
     }
     return "";
 }