| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?php
- /**
- * Created by PhpStorm.
- * User: ring
- * Date: 2019/7/19
- * Time: 下午4:21
- */
- namespace App\Api;
- use App\Http\Controllers\Controller;
- use App\Models\Orders;
- use App\Models\Roses;
- use App\Models\Users;
- use App\Models\Vip;
- use App\Models\AppSettings;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\DB;
- use Omnipay\Omnipay;
- use App\Admin\Im;
- class PaymentController extends Controller
- {
- /**
- * wechat notify
- * @param Request $request
- */
- public function notify(){
- $seting= $this->geSeting('wechat.com');
- $gateway=Omnipay::create('WechatPay');
- $gateway->setAppId($seting->access_key);
- $gateway->setMchId($seting->other);
- $gateway->setApiKey($seting->secret_key);
- $response = $gateway->completePurchase(['request_params' => file_get_contents('php://input')])->send();
- if ($response->isPaid()) {
- $data = $response->getRequestData();
- $out_trade_no = $data['out_trade_no'];
- $orders = Orders::query()->where('status',0)->where('sn',$out_trade_no)->first();
- if ($orders) {
- if($orders->type==1){//vip
- $this->vip($orders);
- }
- if(!$orders->type){//冲玫瑰
- $this->rose($orders);
- }
- DB::table('love_orders')->where('id',$orders->id)->where('sn', $out_trade_no)->update(['status'=>1]);
- }
- exit("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");
- }else{
- info('pay error');
- return false;
- }
- }
- /**
- * alipay notify
- * @param Request $request
- */
- public function alipaynotify(){
- $seting= $this->geSeting('alipay.com');
- $gateway = Omnipay::create('Alipay_AopApp');
- $gateway->setSignType('RSA2');
- $gateway->setAppId($seting->access_key);
- $gateway->setPrivateKey($seting->secret_key);
- $gateway->setAlipayPublicKey($seting->other);
- $request = $gateway->completePurchase();
- $request->setParams($_POST);
- try {
- $response = $request->send();
- if($response->isPaid()){
- $data =$response->getData();
- $out_trade_no = $data['out_trade_no'];
- $orders = Orders::query()->where('status',0)->where('sn',$out_trade_no)->first();
- if ($orders) {
- if($orders->type==1){//vip
- $this->vip($orders);
- }
- if(!$orders->type){//冲玫瑰
- $this->rose($orders);
- }
- DB::table('love_orders')->where('id',$orders->id)->where('sn', $out_trade_no)->update(['status'=>1]);
- }
- die('success');
- }else{
- die('fail');
- }
- } catch (\Exception $e) {
- die('fail');
- }
- }
- /**
- * 增加 vip
- * @param $orders
- */
- private function vip($orders){
- $vip=Vip::where('id',$orders->xid)->first();
- $user=Users::where('id',$orders->uid)->first();
- $user->vip=1;
- $user->vip_time=$user->vip_time+86400*($vip->day+$vip->give_day);
- $user->rose=$user->rose+$vip->give_rose;
-
- $user->save();
- // $this->portrait_set($orders->uid,['Tag'=>'Tag_Profile_IM_Level','Value'=>1]);
- Cache::forget('My'.$orders->uid);
- Cache::forget('user'.$orders->uid);
- }
- /**
- * 增加rose
- * @param $orders
- */
- private function rose($orders){
- $roses=Roses::where('id',$orders->xid)->first();
- $user=Users::where('id',$orders->uid)->first();
- $user->rose=$user->rose+$roses->give_rose+$roses->rose;
- if($roses->give_vip_day){
- if($user->vip){
- $user->vip_time=$user->vip_time+86400*$roses->give_vip_day;
- }else{
- $user->vip=1;
- $user->vip_time=time()+86400*$roses->give_vip_day;
- }
- //$this->portrait_set($orders->uid,['Tag'=>'Tag_Profile_IM_Level','Value'=>1]);
- }
- $user->save();
- Cache::forget('My'.$orders->uid);
- Cache::forget('user'.$orders->uid);
- }
- private function geSeting($key){
- $seting = Cache::rememberForever($key, function() use ($key){
- return AppSettings::where('sole',$key)->where('enabled',1)->first();
- });
- return $seting;
- }
- }
|