<?php
namespace App\Http\Controllers\Api\Common;

use Aix\Pay\Data\PayOrder;
use App\Http\Controllers\Api\ApiBaseController;
use App\Services\Common\PayService;
use SimpleSoftwareIO\QrCode\Facades\QrCode;

class PayHookController extends ApiBaseController
{
    /**
     * @var PayService
     */
    protected $payService;

    /**
     * PayHookController constructor.
     * @param PayService $payService
     */
    public function __construct(PayService $payService)
    {
        $this->payService = $payService;
    }


    /**
     * @param $platform: 支付宝:alipay 微信:wechat
     * @param $type : web(支付宝电脑端支付) scan(微信扫码支付)
     * @return mixed
     */
    public function test($platform, $type)
    {
        $payorder=new PayOrder();
        $payorder->trade_no=$this->payService->getTradeNo(100);
        $payorder->subject="订单测试";
        $payorder->detail="测试订单详情";
        $payorder->price=0.01;
        $payorder->callback='App\Services\Common\PayService.testhook';

        if ($type == 'web') {
            $payorder->return_url=route('test.return');
        }

        if ($type == 'official') {
            $payorder->openid=$this->payService->getPayOpenid();
        }

        $result=$this->payService->pay($platform, $type, $payorder);
       // var_dump($result);
        if ($type == 'scan') {
            return QrCode::size(100)->generate($result->code_url);
        }
        return $result  ;
    }

    public function aliHook()
    {
        return $this->payService->payHook('alipay');
    }

    public function wechatHook()
    {
        return $this->payService->payHook('wechat');
    }

    public function testreturn()
    {
        var_dump(request()->all());
        return '';
    }

}