• 给laravel项目集成支付宝


    给订单系统集成支付宝

    前提自己申请相关api
    安装
    1.执行命令安装包
    composer require latrell/alipay dev-master
    2.执行更新
    composer update
    3.找到 config/app.php 配置文件中,key为 providers 的数组,在数组中添加服务提供者。
    'providers' => [
    // ...
    LatrellAlipayAlipayServiceProvider::class,
    ]
    4.运行
    php artisan vendor:publish
    命令,发布配置文件到你的项目中
    4.配置说明
    说明
    配置文件 config/latrell-alipay.php 为公共配置信息文件, config/latrell-alipay-web.php 为Web版支付宝SDK配置, config/latrell-alipay-mobile.php 为手机端支付宝SDK配置。
    5.设置配置文件config/latrell-alipay-web.php
    <?php
    return [

    // 安全检验码,以数字和字母组成的32位字符。
        'key' => 'b',
        //签å方式
        'sign_type' => 'MD5',
    
        // 服务器异步通知页面路径。
        //'notify_url' => 'http://kaleozhou.iok.la/alipay/webnotify',
        'notify_url' => url('alipay/webnotify'),
    
        // 页面跳转同步通知页é¢路径。
        //'return_url' => 'http://kaleozhou.iok.la/alipay/webreturn'
        'return_url' => url('alipay/webreturn')
    
    ];
    

    6.设置配置文件config/latrell-alipay-web.php
    <?php
    return [

    //合作身份者id,以2088开头的16位纯数字。
    'partner_id' => '',
    
    //卖家支付宝帐户。
    'seller_id' => ''
    
    ]
    

    7.网页端使用
    $alipay=app('alipay.web');
    $alipay->setOutTradeNo($order->ordnumber);
    $alipay->setTotalFee($order->amount);
    $alipay->setSubject($order->product_name);
    $alipay->setBody('订购'.$order->product_name.$order->num.'件');
    //$alipay->setQrPayMode('4'); //该设置为可选,添加该参数设置,支持二维码支付。
    // 跳转到支付页面。
    return redirect()->to($alipay->getPayLink());
    }
    8.异步消息提醒和页面跳转
    public function webNotify(Request $request)
    {
    //验证请求
    if (! app('alipay.web')->verify()) {
    Log::info('Alipay notify post data verification fail.');
    return 'fail';
    }
    // 判断通知类型。
    switch ($request->input('trade_status')) {
    case 'TRADE_SUCCESS':
    case 'TRADE_FINISHED':
    // TODO: 支付成功,取得订单号进行其它相关操作。
    break;
    }
    return 'success';
    }
    public function webReturn(Request $request)
    {
    //验证请求
    if (! app('alipay.web')->verify()) {
    Log::info('Alipay return query data verification fail.');
    //return redirect()->to(url('order'));
    }
    //判断通知类型
    switch ($request->input('trade_status')) {
    case 'TRADE_SUCCESS':
    // TODO: 支付成功,取得订单号进行其它相关操作。
    $ordnumber=$request->out_trade_no;
    $order=Order::where('ordnumber',$ordnumber)->first();
    $customer=Customer::find($order->customer_id);
    return view('order_success')
    ->with('order',$order)
    ->with('customer',$customer);

            case 'TRADE_FINISHED':
                break;
        }
    }
    

    10设置路由

  • 相关阅读:
    GeoServer发布PostGIS数据库中的栅格数据
    CMD查看端口占用情况
    css选择器命名推荐
    css书写顺序
    css中浮动相关
    动态规划算法
    KMP算法 字符串匹配
    Java 反射
    分治(Divide-and-Conquer(P))算法
    图 结构
  • 原文地址:https://www.cnblogs.com/shamojituan/p/6387976.html
Copyright © 2020-2023  润新知