YII2框架使用easyWeChat进行微信 App支付

发布时间:2025-12-09 21:00:33 浏览次数:4

具体的引入安装不多说了,可以去官方文档上看

easyWeChat微信支付要比调用微信原生的支付方便很多,省了很多关于随机字符串,生成签名,二次验证签名等步骤

首先在控制器开始引入方式

use EasyWeChat\Factory;

下单调用

// 配置信息$config = [// 这些信息去微信支付上申请'app_id' => $appId,'mch_id' => $mchId,'key' => $key,// 回调通知地址'notify_url' => $notifyUrl,];$app = Factory::payment($config);// 调用的方法$result = $app->order->unify([// 商品名称'body' => $body,// 订单编号(自己生成的)'out_trade_no' => $outTradeNo,// 金额,微信的金额是分为单位。所以如果是0.01,要乘100,处理为1'total_fee' => $totalFee,// 自定义的回调通知处理地址,本地地址不可用,必须为线上地址'notify_url' => $notifyUrl,// 支付方式(比如:APP,JAPI)'trade_type' => $tradeType,// 自己的openid'openid' => $openid,]);

$result返回支付的信息,可以通过返回的支付信息去处理相关业务

也可以根据自己的订单号去查询支付的信息

$app->order->queryByOutTradeNumber($outTradeNo);

回调处理
在支付成功之后,微信会以post方式通知自定义的地址,并下发xml格式的信息

// 首先获取返回的xml$xml= file_get_contents("php://input");// 并将xml转化为数组$result = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);// 处理自己的业务if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {// 根据这两种状态处理自己的业务信息}else{// 返回相关报错信息}// 也可以将返回的xml格式处理为json存入日志
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477