好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

overtruephp的简单介绍

很多站长朋友们都不太清楚overtruephp,今天小编就来给大家整理overtruephp,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 微信支付lavel是什么? 2、 哪里可以下载钢琴谱? 3、 这样的琶音在overtrue里怎样打? 4、 哈利路亚(大哈)各个声部的伴奏 5、 overtrue php怎么使用 微信支付lavel是什么?

Laravel 微信开发组件-WeChat 微信支付

一、介绍

本教程是LAMP开发环境下基于larvel5.1LTS版进行的开发实例。

由于现在国内有很多优秀且具备开源精神的php开发者,因此出于节约时间成本和维护成本的考虑,微信开发采用组件化开发,我们没必要重复造轮子。本教程采用 overtrue 团队的 easywechat 组件进行微信的支付功能开发和实现。

由于这个组件功能过多 本篇博客主要介绍“扫码支付”的主要流程和思路。

二、composer安装

默认大家已经在自己的开发环境上已经安装了composer,并会一些简单的操作,安装命令:

composer require "overtrue/laravel-wechat:~3.0"

* 如果你用了 laravel-debugbar,请禁用或者关掉,否则这模块别想正常使用!!! * (但是composer提示是否可以关闭x-debug,会影响安装之类的提示,可以不去管它)

三、在laravel中进行配置

1.注册 ServiceProvider (找到 config/app.php 配置文件中,key为 providers 的数组,在数组中添加服务提供者):

Overtrue\LaravelWechat\ServiceProvider::class,

2.(可选)添加 * 外观 * 在app/config/app.php 的 aliases 数组里,添加 * 别名 * :

'wechat' =>Overtrue\LaravelWechat\ServiceProvider::class,

3.创建配置文件(在项目根目录中运行 artisan 命令,发布配置文件到你的项目中):

php artisan vendor:publish

此时在/config目录下会生成配置文件wechat.php,在里面输入你的微信商家信息,这里请注意保护隐私。

四、 微信支付飞起

1.配置微信商家信息,laravel根目录下的.ENV文件支持以下配置:

WECHAT_APPID

WECHAT_SECRET

WECHAT_TOKEN

WECHAT_AES_KEY

WECHAT_LOG_LEVEL

WECHAT_LOG_FILE

WECHAT_OAUTH_SCOPES

WECHAT_OAUTH_CALLBACK

WECHAT_PAYMENT_MERCHANT_ID

WECHAT_PAYMENT_KEY

WECHAT_PAYMENT_CERT_PATH

WECHAT_PAYMENT_KEY_PATH

WECHAT_PAYMENT_DEVICE_INFO

WECHAT_PAYMENT_SUB_APP_ID

WECHAT_PAYMENT_SUB_MERCHANT_ID

WECHAT_ENABLE_MOCK

你可以在/config/wechat.php中进行相关参数配置,也可以写在.ENV文件中,然后,wechat.php具体读取方法:

'notify_url' => env('NOTIFY_URL', ''), // 回调地址

env()默认读取.env文件中常量的值,如果.env中没有定义该常量,则返回env()的第二个参数的值。

2.wechat.php文件中需要注意的地方

(1).'log'数组内是日志配置。

(2).'payment'数组是主要配置的数组,主要配置商户的信息和证书。

3.(重点)创建订单

(1).引入命名空间

use EasyWeChat\Foundation\Application;

use EasyWeChat\Payment\Order;

(2).填写订单信息

$attributes = [

'trade_type' => 'JSAPI', // JSAPI,NATIVE,APP...

'body' => 'iPad mini 16G 白色',

'detail' => 'iPad mini 16G 白色',

'out_trade_no' => '1217752501201407033233368018',

'total_fee' => 5388,

'notify_url' => '', // 支付结果通知网址,如果不设置则会使用配置里的默认地址,我就没有在这里配,因为在.env内已经配置了。

// ...

];

// 创建订单

$order = new Order($attributes);

$result = $payment->prepare($order);

if ($result->return_code == 'SUCCESS' $result->result_code == 'SUCCESS')

{

//生产那个订单后的逻辑

\Log::info('生成订单号..'.$data->order_guid);

//这一块是以ajax形式返回到页面上。

//用户的体验就是点击【确认支付】,验证码以弹层页面出来了(没错,还需要一个好用的弹层js)。

$ajax_data=[

'html' => json_encode(\QrCode::size(250)->generate($result['code_url'])),

'out_trade_no' => $data->order_guid,

'price' => $data->price

];

return $ajax_data;

}else{

return back()->withErrors('生成订单错误!');

}

五、渲染页面

这里创建了订单,需要生成二维码图片,可以参考一下这个二维码图片组件。

Composer 设置

首先,添加 QrCode 包添加到你的 composer.json 文件的 require 里:

composer require "simplesoftwareio/simple-qrcode"

添加 Service Provider

注册 SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class 至 config/app.php 的 providers 数组里.

添加 Aliases

最后,注册 'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class 至 config/app.php 的 aliases 数组里.

pay.blade.php内容

<script type="text/javascript" src="{{ asset('vendor/jquery.js') }}"></script>

<script type="text/javascript" src="{{ asset('layer/layer.js') }}"></script>

<input class="wechat_btn" type="button" value="确认支付"/>

{!-- 这个页面需要有一些js代码,才能使支付功能更加美观可用无bug,比如ajax轮询,点击支付后的btn失效,放弃支付时关闭弹层等等 --}

js内容

$('.wechat_btn').click(function() {

$('.my_order_guid').val('');

$('#code').val('');

//ajax生成二维码

data={

'_token':$(".token").val(),//令牌

'money':$(".money").val(),//商品价格

}

sendAjax(data, "/order", function (data) {

//发送二维码过来(此处使用优美的layer弹层库)

layer.open({

type: 1,

title:'微信支付',

skin: 'layui-layer-rim', //加上边框

area: ['270px', '340px'], //宽高

content: "<p style='color:red;text-align: center;'>支付金额:"+data['price']

+"元</p> <input type='hidden' class='my_order_guid' value='"+data['out_trade_no']

+"'/><div id='code' style='text-align: center;'>"+JSON.parse(data['html'])+

"</div><p style='text-align: center;'>请使用微信扫码支付</p><script> $('.layui-layer-close').click(function() { layer.msg('您已放弃本次支付');setTimeout('window.location.reload()',3000); });</script>"

//这里我把弹层库有关的一点点js写到content里面去了。

});

getInfo();

//这里写一个轮询,可以异步查询订单是否支付完成的信息,从而进行逻辑处理(比如轮询支付状态,成功了跳转页面),仅仅提点一下我的想法,轮询的代码不用找,没有贴。

});

});

六、回调函数

先放上主要代码再说:

public function notifyUrl(Request $request)

{

$app = new Application(config('wechat'));

$response = $app->payment->handleNotify(function($notify, $successful){

if ($successful) {

$order_arr=json_decode($notify,true);

$order_guid=$order_arr['out_trade_no'];//订单号

//回调成功的逻辑

}

});

}

注意

(1).wechat发送回调是通过post方式,在路由处定义了之后,还需要在laravel项目中排除token验证,我建议在中间件中VerifyCsrfToken.php进行排除路由。

protected $except = [

//

'/pay_success_notify',

'/To_rule_out_route'

];

(2). * 重点!重点!重点! * 回调这里的处理可以说是重中之重,这里出岔子,可能会造成 用户支付成功后,微信的 * 回调没有进来 * ,后台回调的逻辑就没有执行,导致用户钱花了,东西没买上(即你的服务器上没有执行给付费用户修改支付状态等数据库操作)。另一种后果,如果没有正确返回微信参数,微信会多次发送回调信息来提醒你支付成功了,导致你的服务器 * 接受回调函数多遍 * 。而此时你也马马虎虎,没有在支付成功的逻辑上对用户的支付状态进行判断,导致逻辑用户充一次钱,在数据库却重复执行了好几次相关数据库操作。前者坑了付费用户,后者坑了你的公司,这里如果不注意的话,后果只会很严重,涉及到钱的地方要倍加小心。

(2).在回调路由指向的方法内,如果你的支付成功的逻辑成功运行了,需要return true;如果没有成功进行数据库操作,需要返回false;或不返回,微信会再一次发送回调信息(post方式)。

七、一些easywechat官方的建议:

这里需要注意的有几个点:

1.handleNotify 只接收一个 callable 参数,通常用一个匿名函数即可。

2.该匿名函数接收两个参数,这两个参数分别为:

$notify 为封装了通知信息的 EasyWeChat\Support\Collection 对象,前面已经讲过这里就不赘述了,你可以以对象或者数组形式来读取通知内容,比如:$notify->totalfee 或者 $notify['totalfee']。

$successful 这个参数其实就是判断 用户是否付款成功了(result_code == ‘SUCCESS’)

3.该函数返回值就是告诉微信 “我是否处理完成”,如果你返回一个 false 或者一个具体的错误消息,那么微信会在稍后再次继续通知你,直到你明确的告诉它:“我已经处理完成了”,在函数里 return true; 代表处理完成。

4.handleNotify 返回值 $response 是一个 Response 对象,如果你要直接输出,使用 $response->send(), 在一些框架里不是输出而是返回:return $response。

5.注意:请把 “支付成功与否” 与 “是否处理完成” 分开,它俩没有必然关系。

比如:微信通知你用户支付完成,但是支付失败了(result_code 为 ‘FAIL’),你应该更新你的订单为支付失败,但是要告诉微信处理完成。

后记

1.在微信开发中,大量用到了laravel自带的Log查错的方法,当var_dump(),echo(),dd()等方法不能查看错误信息是,使用日志查错就可以解决了。怎样使用laravel的log服务,这个以后会讲。

2.本项目开发可以说是组件化开发,有开发速度快,代码质量高,维护成本低等优点,本例的微信开发是一个缩影。

[原文地址]()

哪里可以下载钢琴谱?

钢琴谱的网站:

那里有很多钢琴谱,不过要下看谱子的软件(overtrue)

那里有下载的,可以自动播放,一边看谱子一边听很容易就看明白了~~

加油!

这样的琶音在overtrue里怎样打?

首先全选,打出琶音标记,打出的标记正如你说的,是各自的琶音;

接下来,用选择工具(箭头)把上面谱表的琶音线往下拉,把上下谱表的琶音线连接起来就可以了.

参考:有两种方法,注册一下.

哈利路亚(大哈)各个声部的伴奏

可以去这里下载《哈利路亚》专业五线谱:

需要先免费注册,然后再下载五线谱(附件)。

若要运行,还需要免费下载安装Overtrue4.0专业打谱软件。

我们正在使用这些资源来练习《哈利路亚》。

这是一款很好的专业打谱软件,可以自行编辑,还可以自动播放乐谱,当助教和伴奏来用。

尤其是当四个声部同时分开练习,没那么多司琴,

大家对乐谱又还比较生疏的时候,就可以派上用场了!

可以分声部,或任意组合各个声部混合练习;

还可以调节整个乐谱的速度,或随意调节连续几个小节的速度、

任意定位到某一页,等许多功能。

愿神赐福与你们!

overtrue php怎么使用

PHP >= 5.5.9

composer

openssl 拓展

fileinfo 拓展(素材管理模块需要用到)!

关于overtruephp的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于overtruephp的简单介绍的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did197567
更新时间:2023-04-26   阅读:28次

上一篇: php中r是什么 php中是什么意思

下一篇:php技术专家要求 php技术专栏讨论

最新资料更新

  • 1.php棋牌小游戏 棋牌类小程序
  • 2.php实例上传txt代码的简单介绍
  • 3.php中if应用 php中if语句
  • 4.php下载csv乱码 php下载文件名乱码
  • 5.phpcurl解析失败 php在html中无法解析
  • 6.php爬淘宝图片 php爬取图片
  • 7.php梗怎么来的 php是什么意思饭圈
  • 8.php项目补充redis php+redis
  • 9.phpoa推荐 php推荐书籍
  • 10.包含phpautoconf的词条
  • 11.php类方法 php类方法访问变量
  • 12.phpapache占有 php apc缓存
  • 13.phptoast弹框 php 弹框
  • 14.php版本怎么更新 php版本升级
  • 15.php中数据汇总 php数据统计
  • 16.php可以回收吗 php还有人用吗
  • 17.无法使用curlphp 无法使用此地区的账号登陆
  • 18.php生成uuid php生成随机6位数
  • 19.phpcurl带证书 php证书查询系统
  • 20.输出图片php 输出图片英文

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]