diff --git a/app/common/Alipay.php b/app/common/Alipay.php index d6198b9..0b60fba 100644 --- a/app/common/Alipay.php +++ b/app/common/Alipay.php @@ -3,6 +3,7 @@ namespace app\common; use extend\alipay\Alipay as AlipaySdk; +use app\ros\model\Order as OrderModel; class Alipay { @@ -30,47 +31,25 @@ class Alipay { if ($flag) { - $invest_service = new InvestModel(); - $update_data = []; + $order_model = new OrderModel(); $order_no=$_POST['out_trade_no']; $alipay_no = $_POST['trade_no']; //获取充值信息 - $invest_info = $invest_service->getOne(['order_no'=>$order_no]); + $order_info = $order_model->getOne(['order_no'=>$order_no]); - //更新余额 - $user_model = new UserModel(); + if (!empty($order_info['ali_wx_no'])) { + die; + } - $money = abs($invest_info['money']); - $userid = $invest_info['user_id']; - - $balance = $user_model->getOne(['id'=>$userid],'balance')['balance']; - $old_balance= $balance; - - $balance += $money; - - $data = [ - 'balance' => $balance - ]; - - $user_model->updateOne(['id'=>$userid,'balance'=>$old_balance],$data); - $balance_model = new BalanceModel(); - $balance_data = [ - 'user_id' => $userid, - 'money' => $money, - 'old_balance' => $old_balance, - 'new_balance' => $balance, - 'type' => 1, - ]; - $balance_model->add($balance_data); + $update_data = []; + //更新充值订单 - $update_data['alipay_no'] = $alipay_no; + $update_data['ali_wx_no'] = $alipay_no; $update_data['status'] = 1; - $update_data['old_money'] = $old_balance; - $update_data['new_money'] = $balance; - $invest_service->updateOne(['order_no'=>$order_no],$update_data); + $order_model->updateOne(['order_no'=>$order_no],$update_data); } } diff --git a/app/common/Wxpay.php b/app/common/Wxpay.php new file mode 100644 index 0000000..6e68091 --- /dev/null +++ b/app/common/Wxpay.php @@ -0,0 +1,52 @@ +getOne(['order_no'=>$order_no]); + + if (!empty($order_info['ali_wx_no'])) { + die; + } + + //判断算出的签名和通知信息的签名是否一致 + if($data['result_code'] == 'SUCCESS' && $data['appid'] == 'wx18e5b4f42773c3ec' && $data['mch_id'] == '1571608411'){ + + $update_data = []; + + //更新充值订单 + $update_data['ali_wx_no'] = $wx_no; + $update_data['status'] = 1; + $order_model->updateOne(['order_no'=>$order_no],$update_data); + + + //处理完成之后,告诉微信成功结果 + echo ' + + + '; + exit(); + } + } +} \ No newline at end of file diff --git a/app/ros/controller/Buyer.php b/app/ros/controller/Buyer.php index 013fd08..9c08276 100644 --- a/app/ros/controller/Buyer.php +++ b/app/ros/controller/Buyer.php @@ -2,7 +2,6 @@ namespace app\ros\controller; -use app\ros\model\Product as ProductModel; use app\ros\model\Buyer as BuyerModel; use fastphp\base\Controller; @@ -43,6 +42,10 @@ class Buyer extends Controller } else { $flag = $buyer_model->updateOne(['user_id'=>$this->userinfo['UserId']],$userinfo); } - echo json_encode(['code' => 1]); + if ($flag) { + echo json_encode(['code' => 1]); + } else { + echo json_encode(['code' => -1]); + } } } \ No newline at end of file diff --git a/app/ros/controller/Order.php b/app/ros/controller/Order.php new file mode 100644 index 0000000..8600c82 --- /dev/null +++ b/app/ros/controller/Order.php @@ -0,0 +1,198 @@ +getOne(['id' => $data['product_id']]); + + $money = abs($product_info['price']); + + $order_no = md5(time()); + + $order_model = new OrderModel(); + + $order_data = [ + 'user_id' => $this->userinfo['UserId'], + 'product_id' => $product_info['id'], + 'product_name' => $product_info['name'], + 'order_price' => $product_info['price'], + 'real_price' => $money, + 'order_no' =>$order_no, + 'user' =>$data['username'], + 'phone' =>$data['phone'], + 'address' =>$data['address'], + ]; + $order_model->add($order_data); + + $param = [ + 'out_trade_no' => $order_no, + 'total_amount' => $money, + 'subject' => '购买软路由'.$product_info['name'].'-'.$this->userinfo['LoginName'], + 'product_code' => 'FAST_INSTANT_TRADE_PAY', + 'timeout_express' => '30m', + ]; + + + $pay_html = Alipay::pay($param); + + $info = [ + 'code'=>2, + 'data' => $pay_html + ]; + echo json_encode($info); + die; + } + + /** + * @description: 微信支付 + * @param {*} + * @return {*} + */ + public function wxpay() { + $data = json_decode(file_get_contents("php://input"),true)['data']; + + $product_model = new ProductModel(); + + $product_info = $product_model->getOne(['id' => $data['product_id']]); + + $money = abs($product_info['price']); + + $order_no = md5(time()); + + $order_model = new OrderModel(); + + $order_data = [ + 'user_id' => $this->userinfo['UserId'], + 'product_id' => $product_info['id'], + 'product_name' => $product_info['name'], + 'order_price' => $product_info['price'], + 'real_price' => $money, + 'order_no' =>$order_no, + 'user' =>$data['username'], + 'phone' =>$data['phone'], + 'address' =>$data['address'], + ]; + $order_model->add($order_data); + + //微信支付 + $wxpay = new Wxpay(); + + $param = [ + 'username' => $this->userinfo['LoginName'], + 'money' => $money*100, + 'order_no' => $order_no, + ]; + $url = $wxpay->pay($param); + + $info = [ + 'code'=>1, + 'data' => $url + ]; + echo json_encode($info); + die; + } + + /** + * @description: 余额支付 + * @param {*} + * @return {*} + */ + public function balancepay(){ + $data = json_decode(file_get_contents("php://input"),true)['data']; + + $product_model = new ProductModel(); + + $product_info = $product_model->getOne(['id' => $data['product_id']]); + + $money = abs($product_info['price']); + + $user_model = new UserModel; + + $user_info = $user_model->getOne(['Id' => $this->userinfo['UserId']]); + + $old_balance = $rest_money = $user_info['RestAmount']; + + if ($money > $rest_money) { + $info = [ + 'code'=>-1, + 'msg' => '余额不足' + ]; + echo json_encode($info); + die; + } else { + $rest_money -= $money; + $rest_data = [ + 'RestAmount' => $rest_money + ]; + if ($user_model->updateOne(['Id'=>$this->userinfo['UserId'],'RestAmount'=>$old_balance],$rest_data)) { + $score_model = new UserScore; + $score_data = [ + 'UserId' => $this->userinfo['UserId'], + 'ScoreType' => '6', + 'ScoreTypeName' => '购买软路由', + 'ScoreValue' => $money, + 'UserName' => $user_info['Phone'], + 'OperateUserName' => $user_info['LoginCode'], + 'RestAmount1' => $old_balance, + 'RestAmount2' => $rest_money, + 'CreateTime' => date('Y-m-d H:i:s'), + 'UpdateTime' => date('Y-m-d H:i:s'), + ]; + $score_model->add($score_data); + } else { + $info = [ + 'code'=>-1, + 'msg' => '支付失败,请联系客服!' + ]; + echo json_encode($info); + die; + } + + $order_no = md5(time()); + + $order_model = new OrderModel(); + + $order_data = [ + 'user_id' => $this->userinfo['UserId'], + 'product_id' => $product_info['id'], + 'product_name' => $product_info['name'], + 'order_price' => $product_info['price'], + 'real_price' => $money, + 'order_no' =>$order_no, + 'user' =>$data['username'], + 'phone' =>$data['phone'], + 'address' =>$data['address'], + ]; + $order_model->add($order_data); + } + + $info = [ + 'code'=>3, + ]; + echo json_encode($info); + die; + + + + } +} \ No newline at end of file diff --git a/app/ros/model/Order.php b/app/ros/model/Order.php new file mode 100644 index 0000000..ad998be --- /dev/null +++ b/app/ros/model/Order.php @@ -0,0 +1,9 @@ +setReturnUrl('http://vps.juip.com/personal/invest-record.html'); + $request->setReturnUrl('http://www.juip.com/product/routeros'); - $notifyUrl="http://vps-api.juip.com/common/alipay/alipayverify"; + $notifyUrl="http://php-api.juip.com/common/alipay/alipayverify"; $request->setNotifyUrl($notifyUrl); $request->setBizContent($param); diff --git a/extends/alipay/Aliverify.php b/extends/alipay/Aliverify.php index 656bb06..26dea62 100644 --- a/extends/alipay/Aliverify.php +++ b/extends/alipay/Aliverify.php @@ -2,11 +2,11 @@ namespace extend\alipay; -require_once APP_PATH . 'extend/alipay/aop/AopCertClient.php'; -require_once APP_PATH . 'extend/alipay/aop/AopCertification.php'; -require_once APP_PATH . 'extend/alipay/aop/request/AlipayUserCertifyOpenInitializeRequest.php'; -require_once APP_PATH . 'extend/alipay/aop/request/AlipayUserCertifyOpenCertifyRequest.php'; -require_once APP_PATH . 'extend/alipay/aop/request/AlipayUserCertifyOpenQueryRequest.php'; +require_once APP_PATH . 'extends/alipay/aop/AopCertClient.php'; +require_once APP_PATH . 'extends/alipay/aop/AopCertification.php'; +require_once APP_PATH . 'extends/alipay/aop/request/AlipayUserCertifyOpenInitializeRequest.php'; +require_once APP_PATH . 'extends/alipay/aop/request/AlipayUserCertifyOpenCertifyRequest.php'; +require_once APP_PATH . 'extends/alipay/aop/request/AlipayUserCertifyOpenQueryRequest.php'; /** * 证书类型AopClient功能方法使用测试 diff --git a/extends/wechatpay/Wxpay.php b/extends/wechatpay/Wxpay.php index bc5215b..ec44386 100644 --- a/extends/wechatpay/Wxpay.php +++ b/extends/wechatpay/Wxpay.php @@ -1,8 +1,8 @@ SetBody("VPS充值-".$param['username']); + $input->SetBody("购买软路由-".$param['username']); $input->SetOut_trade_no($param['order_no']); $input->SetTotal_fee($param['money']); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); - $input->SetNotify_url("http://vps-api.juip.com/common/wxpay/wxpayverify"); + $input->SetNotify_url("http://php-api.juip.com/common/wxpay/wxpayverify"); $input->SetTrade_type("NATIVE"); $result = $notify->GetPayUrl($input); diff --git a/extends/wechatpay/example/WxPay.Config.php b/extends/wechatpay/example/WxPay.Config.php index 40ee84a..6365f0a 100644 --- a/extends/wechatpay/example/WxPay.Config.php +++ b/extends/wechatpay/example/WxPay.Config.php @@ -6,7 +6,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Config.Interface.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Config.Interface.php"; /** * diff --git a/extends/wechatpay/example/WxPay.JsApiPay.php b/extends/wechatpay/example/WxPay.JsApiPay.php index 83a3a65..3e86baa 100644 --- a/extends/wechatpay/example/WxPay.JsApiPay.php +++ b/extends/wechatpay/example/WxPay.JsApiPay.php @@ -6,7 +6,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.Config.php"; /** * diff --git a/extends/wechatpay/example/WxPay.MicroPay.php b/extends/wechatpay/example/WxPay.MicroPay.php index bbad21c..497907e 100644 --- a/extends/wechatpay/example/WxPay.MicroPay.php +++ b/extends/wechatpay/example/WxPay.MicroPay.php @@ -6,7 +6,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.Config.php"; /** * diff --git a/extends/wechatpay/example/WxPay.NativePay.php b/extends/wechatpay/example/WxPay.NativePay.php index f03c9c0..2105575 100644 --- a/extends/wechatpay/example/WxPay.NativePay.php +++ b/extends/wechatpay/example/WxPay.NativePay.php @@ -7,7 +7,7 @@ * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.Config.php"; diff --git a/extends/wechatpay/example/download.php b/extends/wechatpay/example/download.php index 511a8d7..c6e4937 100644 --- a/extends/wechatpay/example/download.php +++ b/extends/wechatpay/example/download.php @@ -6,7 +6,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.Config.php"; diff --git a/extends/wechatpay/example/jsapi.php b/extends/wechatpay/example/jsapi.php index a9542e7..9818ae5 100644 --- a/extends/wechatpay/example/jsapi.php +++ b/extends/wechatpay/example/jsapi.php @@ -6,7 +6,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.JsApiPay.php"; require_once "WxPay.Config.php"; diff --git a/extends/wechatpay/example/micropay.php b/extends/wechatpay/example/micropay.php index 6afa97b..4826269 100644 --- a/extends/wechatpay/example/micropay.php +++ b/extends/wechatpay/example/micropay.php @@ -12,7 +12,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.MicroPay.php"; diff --git a/extends/wechatpay/example/native.php b/extends/wechatpay/example/native.php index 06592b9..eb00b89 100644 --- a/extends/wechatpay/example/native.php +++ b/extends/wechatpay/example/native.php @@ -7,7 +7,7 @@ * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.NativePay.php"; diff --git a/extends/wechatpay/example/native_notify.php b/extends/wechatpay/example/native_notify.php index 3a6a97f..88e1661 100644 --- a/extends/wechatpay/example/native_notify.php +++ b/extends/wechatpay/example/native_notify.php @@ -7,7 +7,7 @@ * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once '../lib/WxPay.Notify.php'; require_once "WxPay.Config.php"; diff --git a/extends/wechatpay/example/notify.php b/extends/wechatpay/example/notify.php index d8af676..f08008f 100644 --- a/extends/wechatpay/example/notify.php +++ b/extends/wechatpay/example/notify.php @@ -7,7 +7,7 @@ * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once '../lib/WxPay.Notify.php'; require_once "WxPay.Config.php"; diff --git a/extends/wechatpay/example/orderquery.php b/extends/wechatpay/example/orderquery.php index dee4939..053efbe 100644 --- a/extends/wechatpay/example/orderquery.php +++ b/extends/wechatpay/example/orderquery.php @@ -12,7 +12,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.Config.php"; diff --git a/extends/wechatpay/example/refund.php b/extends/wechatpay/example/refund.php index 49a239d..841ade3 100644 --- a/extends/wechatpay/example/refund.php +++ b/extends/wechatpay/example/refund.php @@ -12,7 +12,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.Config.php"; diff --git a/extends/wechatpay/example/refundquery.php b/extends/wechatpay/example/refundquery.php index 47f2988..68a50f3 100644 --- a/extends/wechatpay/example/refundquery.php +++ b/extends/wechatpay/example/refundquery.php @@ -12,7 +12,7 @@ * 请勿直接直接使用样例对外提供服务 * **/ -require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php"; +require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php"; require_once "WxPay.Config.php";