如有不了解请参考官方文档
进行 composer 安装操作(根据PHP版本安装合适的应用)
composer require overtrue/wechat:~4.0 -vvv
代码展示
要先授权登录后获取到 openid 才可以进行微信支付操作
微信授权登录教程链接地址
public function pay($request, $adminUser)
{
//接收传递过来的openid
$openid = $request->all('openid');
$config = [
// 必要配置
'app_id' => 'wxa3bb197aff0a4e65', //用户APPID
'mch_id' => '1999091602', //商品开发号
'key' => 'fd583d34f526927fb4950pp515dc9b', // API v2 密钥 (注意: 是v2密钥 是v2密钥 是v2密钥)
'cert_path' => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!
'key_path' => 'path/to/your/key', // XXX: 绝对路径!!!!
'notify_url' => '默认的订单回调地址',
];
$payment = Factory::payment($config);
$result = $payment->order->unify([
'body' => '仙狐',//订单名称
'out_trade_no' => '20220530961533012',//订单号
'trade_type' => 'JSAPI', // 必须为JSAPI
'openid' => $openid['openid'], // 这里的openid为付款人的openid
'total_fee' => 1, // 总价
]);
// 如果成功生成统一下单的订单,那么进行二次签名
if ($result['return_code'] === 'SUCCESS') {
// 二次签名的参数必须与下面相同
$params = [
'appId' => 'wxa3bb197aff0a4e65',
'timeStamp' => time(),
'nonceStr' => $result['nonce_str'],
'package' => 'prepay_id=' . $result['prepay_id'],
'signType' => 'MD5',
];
// config('wechat.payment.default.key')为商户的key
$params['paySign'] = generate_sign($params, 'ewq321yui123duxq018xq12341skqsc1');
return $params;
} else {
return $result;
}
}