1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace app\api\controller;
- use app\common\library\Shande;
- use comservice\Response;
- use datamodel\UserChargeLog;
- use think\Db;
- class Recharge extends BaseController
- {
- #充值
- public function index(){
- $data=input();
- $check=$this->validate($data,[
- 'amount|金额'=>['require','number','gt:0','lt:1000000'],
- 'url|链接'=>['url'],
- 'type|付款方式'=>['require','in:shande'],
- ]);
- if($check!==true){
- return json(Response::fail($check));
- }
- $user=$this->userInfo;
- DB::startTrans();
- $log=UserChargeLog::create([
- 'user_id'=>$user['id'],
- 'amount'=>$data['amount'],
- 'type'=>$data['type'],
- ]);
- $res=[
- 'data'=>''
- ];
- switch ($log['type']){
- case 'shande':
- $resp=Shande::orderPay(
- $log['order_no'],
- str_pad($log['amount']*100,12,'0',STR_PAD_LEFT),
- '充值',
- str_replace('http://','https://',url('api/notify/charge',['no'=>$log['order_no'],'type'=>$log['type']],true,true)),
- $data['url']??''
- );
- $res['data']=$resp['data']['body']['credential'];
- if(!is_array($res)){
- Db::rollback();
- return json(Response::fail($res));
- }
- break;
- }
- Db::commit();
- return json(Response::success('',$res));
- }
- }
|