1、引入easy wechat :
composer require “overtrue/laravel-wechat:~4.0”
laravel 5.8以上
composer require “overtrue/laravel-wechat:~5.0”

2、发布生成配置文件
php artisan vendor:publish --provider=“Overtrue\LaravelWeChat\ServiceProvider”

3、配置微信配置文件,在config/wechat.php
把微信支付打开注释,配置app_id,mch_id,key

/** 微信支付*/'payment' => ['default' => ['sandbox'            => env('WECHAT_PAYMENT_SANDBOX', false),'app_id'             => env('WECHAT_PAYMENT_APPID', 'XXXXX'),'mch_id'             => env('WECHAT_PAYMENT_MCH_ID', 'XXXX'),'key'                => env('XXXXX'),'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://XXXXXXX/wechat/notify',                           // 默认支付结果通知地址],// ...],

4、创建路由
//微信支付
Route::get(‘wechat/place/order’,‘Wechat\WechatController@placeOrder’); //生成微信支付订单
Route::post(‘wechat/notify’,‘Wechat\WechatController@notify’); //微信支付回调

5、创建controller

<?php
namespace App\Http\Controllers\Wechat;use App\Http\Controllers\Controller;
use EasyWeChat\Factory;class WechatController extends Controller
{// 请求微信接口的公用配置, 所以单独提出来private function payment(){$config = [// 必要配置, 这些都是之前在 .env 里配置好的'app_id' => config('wechat.payment.default.app_id'),'mch_id' => config('wechat.payment.default.mch_id'),'key' => config('wechat.payment.default.key'),   // API 密钥'notify_url' => config('wechat.payment.default.notify_url'),   // 通知地址];// 这个就是 easywechat 封装的了, 一行代码搞定, 照着写就行了//var_dump($config);die;$app = Factory::payment($config);return $app;}/**** @author lifang* @info 订单支付*/public function placeOrder(){$sOrderSn = orderSn();$app = $this->payment();//订单金额是要查询出来的,所以这里要处理订单金额,测试暂时使用1fen$nPrice = 1;$total_fee = env('APP_DEBUG') ? 1 : $nPrice;//第一次验签$result = $app->order->unify(['trade_type' => 'MWEB', // 原生支付即扫码支付,商户根据微信支付协议格式生成的二维码,用户通过微信“扫一扫”扫描二维码后即进入付款确认界面,输入密码即完成支付。'body' => '订单支付', // 这个就是会展示在用户手机上巨款界面的一句话, 随便写的'out_trade_no' => $sOrderSn,'total_fee' => $total_fee,'spbill_create_ip' => request()->ip(), // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址'notify_url' => config('wechat.payment.default.notify_url'),
//            'sign'             => config('wechat.payment.default.key'),'nonce_str' => 'sdas12',
//            'openid'           => '123']);//第二次验签if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {$result = $app->jssdk->appConfig($result['prepay_id']);//第二次签名return ['code' => 'success','msg' => $result];} else {
//              Log::error('微信支付签名失败:'.var_export($result,1));return false;}}/*** 微信测评支付回调方法,修改订单状态* @return mixed*/public function notify(){$payment = EasyWeChat::payment();$response = $payment->handlePaidNotify(function ($message, $fail) {if ($message['return_code'] === 'SUCCESS' && $message['result_code'] === 'SUCCESS') {
//                \Log::debug($message);//业务逻辑
//                PcOrder::where('out_trade_no', $message['out_trade_no'])->update(['status' => 1, 'pay_time' => time()]);//更改订单状态//支付后,微信会在此处返回支付状态,就是$message,回调里面打印不出来,可通过写入日志里面查看,支付成功后更改订单状态。当然你也可以进行其他操作。return true;} else {
//                \Log::debug('我不买了');return $fail('失败');}});return $response;}// 实例化 easyweachat 类protected function app(){//$url = get_domain();$config = ['app_id' => config('wechat.payment.default.app_id'),'secret' => config('wechat.payment.default.mch_id'),//'token' => 'TestToken','response_type' => 'array','oauth' => [
//                'scopes' => ['snsapi_userinfo'],'scopes' => ['snsapi_login'],'callback' => 'http://39.106.113.193:8081' . '/api/login/oauth?pid=' . 123,],];$wechat_app = Factory::officialAccount($config);return $wechat_app;}}

这里需要说一下,网页支付是不需要open_id的,如果需要根据实际情况去请求open_id,trade_type这个参数是支付类型,关注一下,多看看微信的官方文档https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1 看清楚参数,以免在使用中镐头发。

6、请求成功
我这里因为商户长时间没有支付和收款被微信禁用了,申请恢复支付功能了,所以返回的还在审核中,一般情况下是没有问题的。在业务逻辑中加上你的业务流程就可以了。

laravel 微信支付easywechat相关推荐

  1. laravel+php+支付功能,laravel+微信支付源码

    业务流程时序图  image 仔细阅读并看懂 (不是看过,是看明白+看完 ) 微信官方文档 微信开放平台文档: 1.下载微信支付php demo 放在自己的线上服务器上,配置好ngixn(或者apac ...

  2. overtrue/laravel-wechat 4.0 laravel 微信支付、微信回调、微信查询

    网上现有许多laravel的微信支付都是以前的版本,我就把新的捋一遍啊. composer中配置的是 "overtrue/laravel-wechat": "^4.0&q ...

  3. php laravel微信支付

    安装包 composer require overtrue/laravel-wechat 配置 php artisan vendor:publish --provider="Overtrue ...

  4. Laravel使用EasyWechat 进行微信支付

    微信支付和EasyWeChat这个包都是巨坑, 文档写的稀烂, 记录下防止以后又重复踩坑: 安装教程在这: https://www.jianshu.com/p/82d688e1fd2a 转载于:htt ...

  5. 微信支付 postman_(easywechat + Laravel 5.8)整理 PC 端微信扫码支付全过程

    php中文网最新课程 每日17点准时技术干货分享 业务场景描述: 用户点击站点页面的 "购买" --> 即弹出二维码 --> 用户用微信扫描二维码 --> 根据微 ...

  6. 小程序 php wecahtpay,【PHP】laravel 实现微信小程序微信支付功能

    准备工作 准备来laravel框架,下载好 overtrue/laravel-wechat 第三方插件composerrequireovertrue/wechat:~4.0-vvv PHP代码 调用支 ...

  7. Laravel微信Native支付、微信jsapi支付

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

  8. php小程序 b支付回调视频教程,Laravel教程: 3分钟实现小程序微信支付接入(下)——回调发货逻辑...

    编码 绑定回调路由 routes/api.php Route::any('/gateway/wxpay/callback', 'PayController@callback')->name('p ...

  9. 如何使用easywechat开发微信支付功能

    easywechat是神一样的存在.非常好用.希望大家都能转到这上面来. 用easywechat来开发微信支付功能,步骤如下: 一,需要有一个商品下单页面,页面上有你的商品的信息,还要有购买数量,和一 ...

  10. laravel小程序微信支付

    php小程序微信支付类 laravel小程序微信支付分享地址http://www.xiaoshu168.com/php/232.html

最新文章

  1. java方法里执行两条sql_Java如何在数据库上执行多个SQL命令?
  2. 网易云解码实时音视频社交 成就游戏产业发展新变量
  3. how is my Angular custom controller code executed
  4. linux 复制栈数据结构,算法-数据结构-堆栈
  5. 让你编程能力秃飞猛进的好习惯
  6. mysql 从库relay_MySQL主库binlog(master-log)与从库relay-log关系代码详解
  7. 痛恨3721的朋友们,装个avast! Antivirus吧
  8. centos安装rabbitmq_SpringCloud之RabbitMQ安装
  9. Ubutu: mysql + jdk + tomcat installation
  10. Unity游戏开发——新发教你做游戏(二):60个Unity免费资源获取网站
  11. 使用jsMind实现可拖拽思维导图
  12. C盘深度清理(超快简单全面)
  13. BZOJ2330【SCOI2011】糖果
  14. linux服务器硬盘检测,在Linux服务器中检查硬盘坏道的命令
  15. python constants_Python constants.SUCCESS属性代码示例
  16. 计算机语言26个字母,C 语言实例 - 循环输出26个字母
  17. iMac重装系统的问题:无法与恢复服务器取得联系/将安装器信息下载到目标卷宗失败
  18. dotnet Multi-platform App UI 多平台应用 UI 框架简介
  19. 【7047】北京游:知乎、百度、豆瓣、新浪微博
  20. 【正则】字符串按一定规则做替换

热门文章

  1. IDEA如何新建一个source folder
  2. EasyReport报表工具
  3. mysql宠物店java_javajdbc宠物商店-Mysql数据库
  4. 2020-4-18 深度学习笔记20 - 深度生成模型 2 (深度信念网络DBN,深度玻尔兹曼机DBM)
  5. app做好后如何上线_手机APP开发后如何上架?
  6. 孙子兵法--你如何来做好事情
  7. 锁仓怎么解_[期货知识]期货锁仓后怎么解锁?期货锁仓解锁技巧介绍 - 南方财富网...
  8. 2012年8月22日
  9. Android Glide加载Base64圆形图
  10. 最好的科普著作《追寻记忆的痕迹》——神经与精神的历史和未来