12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php namespace Pay\Yspay;
- use Dever;
- class Cash
- {
- # 入账:待确认
- public function add($order_id, $order, $info)
- {
- $mid = $info['mid'];
- $merchant = Dever::db('pay/yspay_merchant')->one(array('mid' => $mid));
- if ($merchant) {
- $per = $merchant['per'];
- if (!$per) {
- $yspay = Dever::db('pay/yspay')->one(array('account_id' => $merchant['account_id']));
- if ($yspay && $yspay['per']) {
- $per = $yspay['per'];
- }
- }
- if (!$per || $per <= 0) {
- $per = 0;
- } else {
- $per = $per/100;
- }
-
- $data['merchant_id'] = $merchant['id'];
- $data['order_num'] = $info['merOrderId'];
- $data['source_order_num'] = $order_id;
- $data['cash'] = $info['amount'];
- $data['fz_cash'] = round($data['cash']*$per, 2);
- $data['hf_cash'] = round($data['cash'] - $data['fz_cash'], 2);
- $data['status'] = 1;
- $id = Dever::db('pay/yspay_cash')->insert($data);
- return $id;
- }
- return false;
- }
- # 修改状态
- public function up($order_id, $status = 2)
- {
- $where['source_order_num'] = $order_id;
- $info = Dever::db('pay/yspay_cash')->find($where);
- if ($info) {
- $update = array('status' => $status, 'where_id' => $info['id']);
- if ($status == 3) {
- # 开始分账和划付
- $state = $this->tixian($info);
- if ($state != 'ok') {
- return false;
- }
- $update['rdate'] = time();
- }
- $state = Dever::db('pay/yspay_cash')->update($update);
- if ($state) {
- if ($status == 3) {
- $total = Dever::db('pay/yspay_cash')->getTotal(array('status' => 3, 'merchant_id' => $info['merchant_id']));
- if ($total) {
- Dever::db('pay/yspay_merchant')->update(array('where_id' => $info['merchant_id'], 'cash' => $total['cash'], 'hf_cash' => $total['hf_cash'], 'fz_cash' => $total['fz_cash']));
- }
- }
- return $state;
- }
- }
- return false;
- }
- private function tixian($info)
- {
- $merchant = Dever::db('pay/yspay_merchant')->one($info['merchant_id']);
- if ($merchant) {
- $config = Dever::db('pay/yspay')->one(array('account_id' => $merchant['account_id']));
- if ($config) {
- return Dever::load('pay/yspay/multi')->huafu($config, $merchant, $info);
- }
- }
- return false;
- }
- # 定时获取总额
- }
|