2021-02-24 laravel + EasyWechat 小程序 微信支付

1.安装必要的第三方包

$ composer require overtrue/wechat:~5.0 -vvv
  1. 在控制器中添加微信支付调用方法
public function payOrder(Request $request)
    {
        $memberId = $request->attributes->get('memberId');
        $orderSn = $request->get('orderSn');
        $order = Orders::where('order_sn', $orderSn)->where('status', 0)->get()->toArray();
        if (empty($order)) {
            return ['code' => 404, 'massage' => '找不到订单!'];
        }

        try {
            $config = Pay::payByWeChat(reset($order)['id'], $memberId);
            return ['code' => 200, 'data' => $config];
        } catch (\Exception $e) {
            return ['code' => 404, 'massage' => $e->getMessage()];
        }
    }

3.在模型中创建支付方法

public static function getConfig()
    {
        $config = Configs::first()->toArray();

        return [
            // 必要配置
            'app_id' => $config['app_id'] ?? env('WECHAT_APP_ID'),
            'mch_id' => $config['mch_id'] ?? env('WECHAT_MCH_ID'),
            'key' => $config['key'] ?? env('WECHAT_KEY'),   // API 密钥

            // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
//            'cert_path' => 'path/to/your/cert.pem', // 绝对路径!!!!
//            'key_path' => 'path/to/your/key',      // 绝对路径!!!!

            'notify_url' => route('order.notify'),     // 你也可以在下单时单独设置来想覆盖它
//            'sandbox' => true, // 设置为 false 或注释则关闭沙箱模式
        ];
    }

    public static function payByWeChat($orderId, $memberId)
    {
        $goodsIds = OrderItems::where('orders_id', 11)->select('goods_id')->get()->toArray();
        $goodsIds = array_column($goodsIds, 'goods_id');
        $lastOrder = Orders::join('orders_items', 'orders_items.orders_id', '=', 'orders.id')
           
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值