最近在开发一套系统,很久没更新了,这里记录一下开发中遇到的问题和解决方法吧
这里记录一下微信支付V3版本开发的过程
我这里写了一个类,直接放到thinkphp的根目录的extend目录即可,注意命名空间
你也可以放到别的地方,别忘记更改namespace mnpay\Wxpay;
使用方法:
在文件中调用,首先要引入这个文件
use mnpay\wxpay\Wxpay;
我这里定义了一个__construct方法,这个可以根据自己的喜好更改
<?php namespace app\pay\controller; use mnpay\wxpay\Wxpay; class Index { public function __construct() { $this->config = [ 'mchid' => '商户号', 'appid'=> '服务号appid', 'apiKey'=> 'appkeyv3秘钥', 'privateKeyPath'=>我这里传的是证书的内容,文件我没试, 'serialNumber' => '证书序列号', ]; } public function pay() { $parameter = array( 'description'=>'测试商品', 'out_trade_no' => date('YmdHis') . mt_rand(1000, 9999), 'notify_url'=>request()->domain().'/pay/index/notify', 'totalFee'=>'0.01', ); $wxpay = new WxPay($this->config); $html_text = $wxpay->doPay($parameter); return view('',['url'=>$html_text]); } public function notify() { //接收返回数据 $wechatRes = file_get_contents('php://input', 'r'); $res = json_decode($wechatRes, true); $text =base64_decode($res['resource']['ciphertext']); //env("KEY") -> 获取的是v3设置的密钥 $new = sodium_crypto_aead_aes256gcm_decrypt($text,$res['resource']['associated_data'],$res['resource']['nonce'],env("KEY")); $new = json_decode($new, true); if ($new['trade_state'] == 'SUCCESS') { //成功后操作流程写这里。。。 echo '执行成功'; $str=['code'=>'SUCCESS','msg'=>'成功']; }else{ $str=['code'=>'FAIL','msg'=>'失败'];; } return $str; } }
$html_text是微信支付的链接,可以直接在微信打开或者转换成二维码都可以,直接扫码测试就行了
本期教程就到这里,有不懂的可以来问我;
文章标题:thinkphp6中使用微信支付v3版本
文章链接:https://blog.mn0.cn/349.html
更新时间:2023年10月20日
本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:mobais@qq.com我们将第一时间处理!
资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
所有资源仅限于参考和学习,版权归原作者所有。