本文整理汇总了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;
}
示例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);
}
//.........这里部分代码省略.........