Laravel微信Native支付、微信jsapi支付
**
之前一直使用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支付相关推荐
- 微信支付之Native支付和JSAPI支付详细开发步骤!
目录标题 微信支付之扫码Native支付与JSAPI支付 进入主题 一.Native支付 1. 使用场景 2. 开发步骤 3. 开始开发 二.JSAPI支付 1. 使用场景 2. 开发步骤 3. 开始 ...
- JAVA开发微信支付(JSAPI支付)
最近开发完了微信支付功能模块,下面就趁热打铁整理下微信支付(JSAPI支付)相关的知识. 1.JSAPI支付 JSAPI支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSA ...
- C# 微信支付之JSAPI支付
前面说过微信支付的APP支付,这篇说说JSAPI的支付. JSAPI支付只能在微信浏览器里面使用,主要用于公众号里面的H5应用的支付. 开发前的准备 微信公众平台:https://mp.weixin. ...
- 微信公众号支付(JSAPI支付)
微信公众号支付(JSAPI支付) 微信浏览器会内置 WeixinJSBridge 对象,但是其可能需要加载时间,可以通过文档代码 if (typeof WeixinJSBridge == " ...
- 微信支付,JSAPI支付,APP支付,H5支付,Native支付,小程序支付功能详情以及回调处理
一.支付相关文档地址 支付wiki:https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml 支付api: https://pay.weixin.qq. ...
- 微信jsapi支付获取code_【微信支付】JSAPI支付开发者文档
一.概述 为保证商户接入质量,提升交易安全及用户体验,微信支付的合作服务商在正式上线交易前,必须先根据本文指引完成验收.验收完成后,服务商在验收公众平台(微信号:WXPayAssist)提交验收通过申 ...
- 微信浏览器中的微信支付,JSAPI支付,开发流程、常见问题
微信支付有两种使用场景,一种是可以在微信之外的浏览器(如UC浏览器.手机自带浏览器等)中使用,在微信外部唤醒微信进行支付:还有一种是在微信自带内置浏览器中使用,比如微信公众号里边的支付.给客户在微信上 ...
- 微信支付之JSAPI支付
首先看一下,微信支付关于jsapi的官方文档,相关接口,一共有下单,查询订单,关闭订单,调起jsapi支付,支付结果通知,申请退款,查询单笔退款,退款结果通知,申请交易账单,申请资金账单以及下载账单接 ...
- JAVA版微信支付V3—JSAPI支付
本人用的开发框架是:struts2(用了struts2的0配置,对于struts的0配置不熟悉的可以看看这个博客了解下 http://www.cnblogs.com/fpjason/archive/2 ...
- 微信小程序微信支付《JSAPI支付》APIV3详细教程
文章目录 前提 整体介绍 我的maven依赖 1.整体流程 2.openid 的获取 3.统一下单Controller(预支付订单) 4.配置类和配置文件 5.工具类 6.前端接收到必要的参数,进行调 ...
最新文章
- comboBox设置为只读(只选)
- 产品经理能力模型 答网友问
- koa --- restful规范及其栗子
- ABP框架v2.0 和 ABP商业版
- 如何用Pygame写游戏(九)
- Linux 源代码阅读知识点及要求
- Linux流行病毒家族清除方法集锦
- asp.net 页面右下角弹出类似QQ或MSN的消息提示
- 通过思科构造局域网_从Cisco DNA中心的管理的和设置的非结构Catalyst 9800无线局域网控制器...
- 【mediasoup 带宽估计】aimd算法2 : AimdRateControl
- 电动葫芦断火限位器安装接线电路图
- 语法长难句之从句——名词性从句
- 企查猫app数据解密
- log4j2 2.14.0之前的版本出现重大漏洞
- Outlook邮件撤回有时间限制吗_怎么操作?
- 宝石塔防的贴吧地址:
- 护航者,腾讯云: 2017年度游戏行业DDoS态势报告—回溯与前瞻
- Android 性能优化之内存泄漏检测以及内存优化(上)
- footstrap实现星巴克官网
- Matlab三维数据画图和等高线数据提取