/**
* [示例]调用内置方法发起支付 除支付宝手机电脑支付其它为返回参数自行组装
* @param string $method *[wechat_qr,wechat_js,wechat_mini,wechat_mweb,wechat_app,alipay,alipay_app,alipay_scan]
* @param string $order_no 订单号
* @param integer $money 金额 微信需要*100 生产环境需要高精度处理 intval(strval($val*100)); 
* @param string $body 支付宝描述 微信描述
* @param string $subject 支付宝标题 转换为微信detail
* @param integer $uid 用户标识
* @param string $back_url 返回地址
*/
$data=[
    'method'   => $method,
    'order_no' => '',
    'money'    => 1+rand(1,99)/100,
    'body'     => '',
    'subject'  => '',
    'uid'      => 1000001,
    'back_url' => ''
];
$rs = action('system/album.drive/apply',$data,'home')

/**
* [示列] 独立发起支付接口
* 支付提交接口
* _submit($param);
* 同步通知接口
* _sync($param);
* 异步通知接口
* _async($param);
* 退款提交接口
* _refundSubmit($param);
* 同步退款通知接口
* _syncRefund($param);
* 异步退款通知接口
* _asyncRefund($param);
*/

use app\one_upload\driver\Factory;

//微信支付(非V3) https://pay.weixin.qq.com/wiki/doc/api/index.html
//支付宝支付 https://b.alipay.com/signing/productSetV2.htm

//支付
try{
    $factory = new Factory('wechat_qr');
    $rs = $factory->__call('_submit', [
        'out_trade_no' => $param['order_no'],
        'total_fee' => $param['money']*100,
        'body'         => $param['body'],
        'detail'      => $param['subject'],
    ]);
}catch(Exception $e){
    //TODO echo $e->getMessage();
}

//退款
try{
    $factory = new Factory('wechat_qr');
    $rs = $factory->__call('_refundSubmit', [
        'out_trade_no' => '2020122620073705186',
        'out_refund_no'=>order_number(),
        'total_fee' => 10,
        'refund_fee' => 10,
    ]);
}catch(Exception $e){
    //TODO echo $e->getMessage();
}