当前位置: 首页>>代码示例>>PHP>>正文


PHP payment::update方法代码示例

本文整理汇总了PHP中payment::update方法的典型用法代码示例。如果您正苦于以下问题:PHP payment::update方法的具体用法?PHP payment::update怎么用?PHP payment::update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在payment的用法示例。


在下文中一共展示了payment::update方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: doPay

 public function doPay($filter)
 {
     if (!$filter['pay_app_id']) {
         throw new \LogicException(app::get('systrade')->_("请选择支付方式!"));
         return false;
     }
     //检测该支付单是否被支付
     //检测该支付单中的订单是否有异常
     $payments = $this->checkTradeData($filter['payment_id']);
     if (!$payments) {
         throw new \LogicException(app::get('systrade')->_("支付失败"));
         return false;
     }
     $payments['pay_app_id'] = $filter['pay_app_id'];
     $payments['return_url'] = $filter['return_url'];
     //更新支付单的支付方式
     //请求第三方支付接口
     $updateResult = payment::update($payments);
     if (!$updateResult) {
         throw new \LogicException(app::get('systrade')->_("支付信息更新失败"));
         return false;
     }
     $objPayment = kernel::single('ectools_pay');
     $result = $objPayment->generate($payments);
     if (!$result) {
         throw new \LogicException(app::get('systrade')->_("支付失败"));
         return false;
     }
     return true;
 }
开发者ID:453111208,项目名称:bbc,代码行数:30,代码来源:gather.php

示例2: parse

 /**
  * 支付返回后的同意支付处理
  * @params array - 页面参数
  * @return null
  */
 public function parse($params = '')
 {
     // 取到内部系统参数
     $arr_pathInfo = explode('?', $_SERVER['REQUEST_URI']);
     $pathInfo = substr($arr_pathInfo[0], strpos($arr_pathInfo[0], "parse/") + 6);
     $objShopApp = $this->getAppName($pathInfo);
     $innerArgs = explode('/', $pathInfo);
     $class_name = array_shift($innerArgs);
     $method = array_shift($innerArgs);
     $arrStr = array();
     $arrSplits = array();
     $arrQueryStrs = array();
     // QUERY_STRING
     if (isset($arr_pathInfo[1]) && $arr_pathInfo[1]) {
         $querystring = $arr_pathInfo[1];
     }
     if ($querystring) {
         $arrStr = explode("&", $querystring);
         foreach ($arrStr as $str) {
             $arrSplits = explode("=", $str);
             $arrQueryStrs[urldecode($arrSplits[0])] = urldecode($arrSplits[1]);
         }
     } else {
         if ($_POST) {
             $arrQueryStrs = $_POST;
         }
     }
     logger::info("支付返回信息记录:" . var_export($arrQueryStrs, 1));
     $payments = new $class_name($objShopApp);
     $ret = $payments->{$method}($arrQueryStrs);
     logger::info("支付返回信息转换之后记录:" . var_export($ret, 1));
     // 支付结束,回调服务.
     if (!isset($ret['status']) || $ret['status'] == '') {
         $ret['status'] = 'failed';
     }
     $objPayments = app::get('ectools')->model('payments');
     $sdf = $objPayments->getRow('*', array('payment_id' => $ret['payment_id']));
     if ($sdf) {
         $sdf['account'] = $ret['account'];
         $sdf['bank'] = $ret['bank'];
         $sdf['pay_account'] = $ret['pay_account'];
         $sdf['currency'] = $ret['currency'];
         $sdf['trade_no'] = $ret['trade_no'];
         $sdf['payed_time'] = $ret['t_payed'];
         $sdf['pay_app_id'] = $ret['pay_app_id'];
         $sdf['pay_type'] = $ret['pay_type'];
         $sdf['memo'] = $ret['memo'];
         $sdf['money'] = $ret['money'];
         $sdf['cur_money'] = $ret['cur_money'];
     }
     switch ($ret['status']) {
         case 'succ':
         case 'progress':
             if ($sdf && $sdf['status'] != 'succ') {
                 $isUpdatedPay = payment::update($ret, $msg);
                 if ($isUpdatedPay) {
                     $params['payment_id'] = $sdf['payment_id'];
                     $params['fields'] = 'status,payment_id';
                     try {
                         $paymentBill = app::get('ectools')->rpcCall('payment.bill.get', $params);
                     } catch (Exception $e) {
                         throw $e;
                     }
                     $db = app::get('ectools')->database();
                     $db->beginTransaction();
                     try {
                         if ($paymentBill['status'] == "succ" || $paymentBill['status'] == "progress") {
                             foreach ($paymentBill['trade'] as $value) {
                                 app::get('ectools')->rpcCall('trade.pay.finish', array('tid' => $value['tid'], 'payment' => $value['payment']));
                             }
                             $db->commit();
                         }
                     } catch (\Exception $e) {
                         $db->rollback();
                         throw $e;
                     }
                 }
                 //支付成功给支付网关显示支付信息
                 if (method_exists($payments, 'ret_result')) {
                     $payments->ret_result($ret['payment_id']);
                 }
             }
             break;
         case 'REFUND_SUCCESS':
             // 退款成功操作
             if ($sdf) {
                 unset($sdf['payment_id']);
                 $obj_refund = app::get('ectools')->model('refund');
                 $sdf['refund_id'] = $obj_refund->gen_id();
                 $ret['status'] = 'succ';
                 if ($obj_refund->insert($sdf)) {
                     //处理单据的支付状态
                     $obj_refund_finish = kernel::service("order.refund_finish");
                     $obj_refund_finish->order_refund_finish($sdf, $ret['status'], 'font', $msg);
                 }
//.........这里部分代码省略.........
开发者ID:453111208,项目名称:bbc,代码行数:101,代码来源:api.php


注:本文中的payment::update方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。