**

之前一直使用thinkphp做开发,偶然的一次机会运用了laravel框架并且做了一个微信扫码支付功能,发现laravel扩展功能大大超过了tp,接下来分享一下laravel的EasyWeChat扩展

**
1、首先下载EasyWeChat扩展

composer require "overtrue/laravel-wechat:^5.1"

2、注册 ServiceProvider 和 Facade (Laravel 5.5 + 无需手动注册)
在项目配置文件cofig/app.php加入

'providers' => [// ...Overtrue\LaravelWeChat\ServiceProvider::class,
],
'aliases' => [// ...'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class,
],

3、创建配置文件
在项目根目录输入:

php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"

输入以上命令系统会在根目录config创建wechat.php文件只需要修改里边的参数值就可以

<?php/** This file is part of the overtrue/laravel-wechat.** (c) overtrue <i@overtrue.me>** This source file is subject to the MIT license that is bundled* with this source code in the file LICENSE.*/return [/** 默认配置,将会合并到各模块中*/'defaults'         => [/** 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名*/'response_type'     => 'array',/** 使用 Laravel 的缓存系统*/'use_laravel_cache' => true,/** 日志配置** level: 日志级别,可选为:*                 debug/info/notice/warning/error/critical/alert/emergency* file:日志文件位置(绝对路径!!!),要求可写权限*/'log'               => ['level' => env('WECHAT_LOG_LEVEL', 'debug'),'file'  => env('WECHAT_LOG_FILE', storage_path('logs/wechat.log')),],],/** 路由配置*/'route'            => [/** 开放平台第三方平台路由配置*/// 'open_platform' => [//     'uri' => 'serve',//     'action' => Overtrue\LaravelWeChat\Controllers\OpenPlatformController::class,//     'attributes' => [//         'prefix' => 'open-platform',//         'middleware' => null,//     ],// ],],/** 公众号*/'official_account' => ['default' => ['app_id'  => env('WECHAT_OFFICIAL_ACCOUNT_APPID', 'your-app-id'),         // AppID'secret'  => env('WECHAT_OFFICIAL_ACCOUNT_SECRET', 'your-app-secret'),    // AppSecret'token'   => env('WECHAT_OFFICIAL_ACCOUNT_TOKEN', 'your-token'),           // Token'aes_key' => env('WECHAT_OFFICIAL_ACCOUNT_AES_KEY', ''),                 // EncodingAESKey/** OAuth 配置** scopes:公众平台(snsapi_userinfo / snsapi_base),开放平台:snsapi_login* callback:OAuth授权完成后的回调页地址(如果使用中间件,则随便填写。。。)* enforce_https:是否强制使用 HTTPS 跳转*/// 'oauth'   => [//     'scopes'        => array_map('trim', explode(',', env('WECHAT_OFFICIAL_ACCOUNT_OAUTH_SCOPES', 'snsapi_userinfo'))),//     'callback'      => env('WECHAT_OFFICIAL_ACCOUNT_OAUTH_CALLBACK', '/examples/oauth_callback.php'),//     'enforce_https' => true,// ],],],/** 开放平台第三方平台*/// 'open_platform' => [//     'default' => [//         'app_id'  => env('WECHAT_OPEN_PLATFORM_APPID', ''),//         'secret'  => env('WECHAT_OPEN_PLATFORM_SECRET', ''),//         'token'   => env('WECHAT_OPEN_PLATFORM_TOKEN', ''),//         'aes_key' => env('WECHAT_OPEN_PLATFORM_AES_KEY', ''),//     ],// ],/** 小程序*/// 'mini_program' => [//     'default' => [//         'app_id'  => env('WECHAT_MINI_PROGRAM_APPID', ''),//         'secret'  => env('WECHAT_MINI_PROGRAM_SECRET', ''),//         'token'   => env('WECHAT_MINI_PROGRAM_TOKEN', ''),//         'aes_key' => env('WECHAT_MINI_PROGRAM_AES_KEY', ''),//     ],// ],/** 微信支付*/'payment' => ['default' => ['sandbox'            => env('WECHAT_PAYMENT_SANDBOX', false),'app_id'             => '你的appid','mch_id'             => '你的商户号','key'                => '你的支付密钥','cert_path'          => env('WECHAT_PAYMENT_CERT_PATH', 'path/to/cert/apiclient_cert.pem'),    // XXX: 绝对路径!!!!'key_path'           => env('WECHAT_PAYMENT_KEY_PATH', 'path/to/cert/apiclient_key.pem'),      // XXX: 绝对路径!!!!'notify_url'         => 'http://example.com/payments/wechat-notify',                           // 默认支付结果通知地址],// ...],/** 企业微信*/// 'work' => [//     'default' => [//         'corp_id' => 'xxxxxxxxxxxxxxxxx',//         'agent_id' => 100020,//         'secret'   => env('WECHAT_WORK_AGENT_CONTACTS_SECRET', ''),//          //...//      ],// ],
];

以上就是EasyWeChat全部配置
接下来需要在控制里使用支付方式

             $params = config('wechat.payment.default');//获取config文件数据$nonce_str = $this->createNonceStr();//随机数,自己写或者百度都可以$app = app('wechat.payment');$result = $app->order->unify([//这个可就简单了,直接下订单,依赖包里面都帮我们处理好了'trade_type'=>'NATIVE','body' => $goods_name,'total_fee' => $payMoney*100,'out_trade_no' => $orderSn,'nonce_str' => $nonce_str,'notify_url' =>'你的回调地址',]);if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS')//判断成功{$url = $result['code_url'];//只有native支付才有code_url. 访问这个url可以直接调起支付$img =  QrCode::format('png')->size(200)->generate($url);    //format 是指定生成文件格式  默认格式是svg,可以直接在浏览器打开,png不能直接显示return  $data = 'data:image/png;base64,' . base64_encode($img );}

将code_url生成二维码是需要下载QrCode扩展的
下载安装使用教程在其他文章写过这里就不做赘述了

总结: Laravel微信Native支付使用EasyWeChat扩展方便简洁,都已封装好 自己直接调用就可以。大大减少开发者的工作量

Laravel微信Native支付、微信jsapi支付相关推荐

  1. 微信支付之Native支付和JSAPI支付详细开发步骤!

    目录标题 微信支付之扫码Native支付与JSAPI支付 进入主题 一.Native支付 1. 使用场景 2. 开发步骤 3. 开始开发 二.JSAPI支付 1. 使用场景 2. 开发步骤 3. 开始 ...

  2. JAVA开发微信支付(JSAPI支付)

    最近开发完了微信支付功能模块,下面就趁热打铁整理下微信支付(JSAPI支付)相关的知识. 1.JSAPI支付 JSAPI支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSA ...

  3. C# 微信支付之JSAPI支付

    前面说过微信支付的APP支付,这篇说说JSAPI的支付. JSAPI支付只能在微信浏览器里面使用,主要用于公众号里面的H5应用的支付. 开发前的准备 微信公众平台:https://mp.weixin. ...

  4. 微信公众号支付(JSAPI支付)

    微信公众号支付(JSAPI支付) 微信浏览器会内置 WeixinJSBridge 对象,但是其可能需要加载时间,可以通过文档代码 if (typeof WeixinJSBridge == " ...

  5. 微信支付,JSAPI支付,APP支付,H5支付,Native支付,小程序支付功能详情以及回调处理

    一.支付相关文档地址 支付wiki:https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml 支付api: https://pay.weixin.qq. ...

  6. 微信jsapi支付获取code_【微信支付】JSAPI支付开发者文档

    一.概述 为保证商户接入质量,提升交易安全及用户体验,微信支付的合作服务商在正式上线交易前,必须先根据本文指引完成验收.验收完成后,服务商在验收公众平台(微信号:WXPayAssist)提交验收通过申 ...

  7. 微信浏览器中的微信支付,JSAPI支付,开发流程、常见问题

    微信支付有两种使用场景,一种是可以在微信之外的浏览器(如UC浏览器.手机自带浏览器等)中使用,在微信外部唤醒微信进行支付:还有一种是在微信自带内置浏览器中使用,比如微信公众号里边的支付.给客户在微信上 ...

  8. 微信支付之JSAPI支付

    首先看一下,微信支付关于jsapi的官方文档,相关接口,一共有下单,查询订单,关闭订单,调起jsapi支付,支付结果通知,申请退款,查询单笔退款,退款结果通知,申请交易账单,申请资金账单以及下载账单接 ...

  9. JAVA版微信支付V3—JSAPI支付

    本人用的开发框架是:struts2(用了struts2的0配置,对于struts的0配置不熟悉的可以看看这个博客了解下 http://www.cnblogs.com/fpjason/archive/2 ...

  10. 微信小程序微信支付《JSAPI支付》APIV3详细教程

    文章目录 前提 整体介绍 我的maven依赖 1.整体流程 2.openid 的获取 3.统一下单Controller(预支付订单) 4.配置类和配置文件 5.工具类 6.前端接收到必要的参数,进行调 ...

最新文章

  1. comboBox设置为只读(只选)
  2. 产品经理能力模型 答网友问
  3. koa --- restful规范及其栗子
  4. ABP框架v2.0 和 ABP商业版
  5. 如何用Pygame写游戏(九)
  6. Linux 源代码阅读知识点及要求
  7. Linux流行病毒家族清除方法集锦
  8. asp.net 页面右下角弹出类似QQ或MSN的消息提示
  9. 通过思科构造局域网_从Cisco DNA中心的管理的和设置的非结构Catalyst 9800无线局域网控制器...
  10. 【mediasoup 带宽估计】aimd算法2 : AimdRateControl
  11. 电动葫芦断火限位器安装接线电路图
  12. 语法长难句之从句——名词性从句
  13. 企查猫app数据解密
  14. log4j2 2.14.0之前的版本出现重大漏洞
  15. Outlook邮件撤回有时间限制吗_怎么操作?
  16. 宝石塔防的贴吧地址:
  17. 护航者,腾讯云: 2017年度游戏行业DDoS态势报告—回溯与前瞻
  18. Android 性能优化之内存泄漏检测以及内存优化(上)
  19. footstrap实现星巴克官网
  20. Matlab三维数据画图和等高线数据提取

热门文章

  1. 一周 Go World 新鲜事
  2. 产业安全专家谈丨如何为政务大数据平台构筑安全防护能力?
  3. conda不能创建虚拟环境
  4. 短信平台开发之短信猫资料简介
  5. fillna填充某一列_python dataframe向下向上填充,fillna和ffill的方法
  6. iPad开发:UISplitViewController应用
  7. vue打印带有ant-design样式
  8. ArcGIS属性表批量替换
  9. 一文看懂MPC百万富翁问题的两种解法:CG+OT不经意传输解法或者RSA密码学解法
  10. 中通快递数据治理实践