| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | 
							- <?php
 
- # 支付
 
- namespace Goods\Lib;
 
- use Dever;
 
- class Pay
 
- {
 
- 	public function action($uid, $id, $sku, $num, $source)
 
-     {
 
-         if (!$uid) {
 
-             Dever::alert('错误的用户信息');
 
-         }
 
-         $goods = Dever::load('goods/lib/info')->getPayInfo($id, $sku);
 
-         $user = Dever::db('passport/user')->one($uid);
 
-         $wechat = Dever::db('passport/wechat')->one(array('uid' => $uid, 'type' => 1, 'system_id' => 1));
 
-         if ($source == 'ios') {
 
-             $method = 'apple';
 
-             $account_id = 3;
 
-             # 使用苹果内购支付
 
-             $receipt = Dever::input('receipt');
 
-             if (!$receipt) {
 
-                 Dever::alert('苹果内购支付失败,没有receipt参数');
 
-             }
 
-         } elseif ($source == 'android') {
 
-             $method = 'app';
 
-             $account_id = 3;
 
-         } elseif ($source == 'applet') {
 
-         	# 小程序支付
 
-             $method = 'applet';
 
-             $account_id = 2;
 
-         } else {
 
-         	# 默认是网页支付
 
-         	$method = 'page';
 
-         	$account_id = 1;
 
-         }
 
-         
 
-         $order_data['uid'] = $uid;
 
-         $order_data['status'] = 1;
 
-         $order_data['info_id'] = $goods['id'];
 
-         $order_data['name'] = $goods['name'];
 
-         $order_data['cash'] = $goods['price'];
 
-         $order_data['num'] = $num;
 
-         $order_data['source'] = $source;
 
-         $order_data['order_id'] = $this->getOrderId();
 
-         $id = Dever::db('goods/order')->insert($order_data);
 
-         if (!$id) {
 
-             Dever::alert('支付失败');
 
-         }
 
-         $refer = 'test';
 
-         //$param参数
 
-         $param = array
 
-         (
 
-             'account_id' => $account_id,
 
-             'project_id' => 1,
 
-             'uid' => $uid,
 
-             'username' => $user['username'],
 
-             'name' => $order_data['name'],
 
-             'cash' => $order_data['cash'] * $order_data['num'],
 
-             //'cash' => '0.01',
 
-             'openid' => isset($wechat['openid']) ? $wechat['openid'] : '',
 
-             'product_id' => $goods['id'],
 
-             'order_id' => $order_data['order_id'],
 
-             'refer' => $refer
 
-         );
 
-         if ($method == 'apple') {
 
-             $param['other'] = $receipt;
 
-         }
 
-         $result['pay'] = Dever::load('pay/api.' . $method, $param);
 
-         $result['order_id'] = $order_data['order_id'];
 
-         return $result;
 
-     }
 
-     # 生成订单号
 
-     public function getOrderId()
 
-     {
 
-         $where['order_id'] = $this->createOrderId();
 
-         $state = Dever::db('goods/order')->one($where);
 
-         if (!$state) {
 
-             return $where['order_id'];
 
-         } else {
 
-             return $this->getOrderId();
 
-         }
 
-     }
 
-     # 生成订单号
 
-     public function createOrderId()
 
-     {   
 
-         if (function_exists('session_create_id')) {
 
-             return strtoupper(session_create_id());
 
-         } else {
 
-             $charid = strtoupper(md5(uniqid(mt_rand(), true)));
 
-             return substr($charid, 0, 8) . substr($charid, 8, 4) . substr($charid, 12, 4) . substr($charid, 16, 4) . substr($charid, 20, 12);
 
-         }
 
-     }
 
-     # 临时订单号 无用
 
-     public function createTmpOrderId($prefix = '')
 
-     {
 
-         return $prefix . (strtotime(date('YmdHis', time()))) . substr(microtime(), 2, 6) . sprintf('%03d', rand(0, 999));
 
-     }
 
- }
 
 
  |