本文整理汇总了PHP中Fn::to_timestamp方法的典型用法代码示例。如果您正苦于以下问题:PHP Fn::to_timestamp方法的具体用法?PHP Fn::to_timestamp怎么用?PHP Fn::to_timestamp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fn
的用法示例。
在下文中一共展示了Fn::to_timestamp方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: notify
/**
* action 'notify'
* 微信支付统一下订单回调
*
* @param Request $request
* @param Response $response
*/
public function notify(Request $request, Response $response)
{
Wxpay::nofify(function ($data, &$msg) {
//trace_debug('wxpay_notify_data', $data);
//trace_debug('wxpay_notify_msg', $msg);
if ('OK' == $msg) {
// 成功合法的订单
// 关注的数据
$openid = $data['openid'];
//用户openid
$is_subscribe = $data['is_subscribe'];
//是否关注公众账号:'Y' or 'N'
$total_fee = $data['total_fee'];
//订单总金额,单位为分
$bank_type = $data['bank_type'];
//付款银行
$transaction_id = $data['transaction_id'];
//微信支付订单号
$order_sn = $data['out_trade_no'];
//自身订单号
$attach = isset($data['attach']) ? $data['attach'] : '';
//商家自定义数据,原样返回
$time_end = $data['time_end'];
//支付完成时间,格式为yyyyMMddHHmmss,如:20141030133525
$time_end = Fn::to_timestamp($time_end);
//对日志表"写锁定",避免其他线程进入干扰(这时其他线程对表pay_log的读写都要等待)
$tb_paylog = C('storage.mysql-config.tablePrefix') . 'pay_log';
D()->lock_tables($tb_paylog, DB::LOCK_WRITE, '', TRUE);
//检查支付日志表,以确定订单是否存在(之所以用日志表而不是主表order_info,是为了在锁表期间不阻塞到前台访问频繁的主表)
$pay_log = D()->from($tb_paylog, DB::WRITABLE)->where(['order_sn' => $order_sn])->select()->get_one();
if (empty($pay_log)) {
$msg = '订单号不存在';
D()->unlock_tables();
// 解锁
return false;
}
$order_id = $pay_log['order_id'];
//检查支付金额是否正确
if (intval($pay_log['order_amount'] * 100) != $total_fee) {
$msg = '金额不对';
D()->unlock_tables();
// 解锁
return false;
}
//检查订单状态
if (!$pay_log['is_paid']) {
//未付款
//更新pay_log
D()->update($tb_paylog, ['is_paid' => 1], ['order_id' => $order_id], true);
// 更新完立马解锁
D()->unlock_tables();
//立马修改订单状态为已付款
$updata = ['pay_trade_no' => $transaction_id, 'order_status' => OS_CONFIRMED, 'confirm_time' => simphp_time(), 'pay_status' => PS_PAYED, 'pay_time' => simphp_time($time_end), 'money_paid' => $pay_log['order_amount'], 'order_amount' => 0, 'pay_data2' => json_encode($data)];
D()->update('order_info', $updata, ['order_id' => $order_id]);
//记录订单操作记录
Order::order_action_log($order_id, ['action_note' => '用户支付']);
//更新订单下所有商品的"订单数"
//Goods::updateGoodsOrderCntByOrderid($order_id);
//订单成功后的操作,如送分、送票等
Order::order_success_after($order_id);
} else {
D()->unlock_tables();
// 解锁
}
return true;
}
return false;
});
}