public function notifyAction()
 {
     if (Yy_Upmp_Service::verifySignature($_POST)) {
         // 服务器签名验证成功
         // 商户的业务逻辑
         $transStatus = $this->_getParam('transStatus');
         // 交易状态
         if ("" != $transStatus && "00" == $transStatus) {
             // 交易处理成功
             $total_fee = $this->_getParam('settleAmount');
             // 获取支付总金额
             $orderid = $this->_getParam('orderNumber');
             // 获取订单号
             $order = Application_Model_M_MemberCardOrder::fetchByOrderID($orderid);
             if ($order) {
                 $total_price = $order->getTotal_price();
                 if ($total_price == $total_fee) {
                     $order->setPayment_status(1);
                     $order->save();
                 } else {
                     echo "fail";
                 }
             } else {
                 echo "fail";
             }
         } else {
             echo "fail";
         }
         echo "success";
     } else {
         // 服务器签名验证失败
         echo "fail";
     }
 }
Exemple #2
0
 public static function getUpmpTn($orderNumber, $orderDescription, $totalPrice, $mer_front_end_url, $deadtime, $notify_url)
 {
     //需要填入的部分
     $req['version'] = Yy_Upmp_Config::$version;
     // 版本号
     $req['charset'] = Yy_Upmp_Config::$charset;
     // 字符编码
     $req['transType'] = "01";
     // 交易类型
     $req['merId'] = Yy_Upmp_Config::$mer_id;
     // 商户代码
     $req['backEndUrl'] = $notify_url;
     // 通知URL
     $req['frontEndUrl'] = $mer_front_end_url;
     // 前台通知URL(可选)
     $req['orderDescription'] = $orderDescription;
     // 订单描述(可选)
     $req['orderTime'] = date("YmdHis");
     // 交易开始日期时间yyyyMMddHHmmss
     $req['orderTimeout'] = "";
     // 订单超时时间yyyyMMddHHmmss(可选)
     $req['orderNumber'] = $orderNumber;
     //订单号(商户根据自己需要生成订单号)
     $req['orderAmount'] = $totalPrice;
     // 订单金额
     $req['orderCurrency'] = "156";
     // 交易币种(可选)
     $req['reqReserved'] = "虹桥医游网";
     // 请求方保留域(可选,用于透传商户信息)
     // 保留域填充方法
     $merReserved['Merchant'] = "虹桥医游网";
     $req['merReserved'] = Yy_Upmp_Service::buildReserved($merReserved);
     // 商户保留域(可选)
     $resp = array();
     $validResp = Yy_Upmp_Service::trade($req, $resp);
     // 商户的业务逻辑
     if ($validResp) {
         //var_dump($req);exit;
         // 服务器应答签名验证成功
         //print_r($resp);exit;
         return $resp['tn'];
     } else {
         // 服务器应答签名验证失败
         //print_r($resp);
     }
 }