1、微信支付
1.1、安装依赖包
- 我这里使用 EasyWeChat 实现微信支付,另外我附上之前我封装的微信类。
- 详细操作里面写的比较清楚,请先看这个:https://www.jianshu.com/p/d376d921bf16
1.2、准备工作
(1)需要去微信开放平台注册账号
- appid(微信开放平台上的应用id)
- mch_id(微信申请成功之后邮件中的商户id)
- notify_url(支付成功后的回调地址)
- api_key(在微信商户平台上自己设定的api密钥 32位)
- apiclient_cert.pem 和 apiclient_key.pem 证书
相关的申请流程可以参考网站: https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Pay/Vendor_Service_Center.html
(2)将对应的配置写入配置文件中(配置文件可以参考我下面封装的微信类)
(3)创建订单表
- 关于订单表,这里给你们参考下我的
1.3、调用微信支付
$app = (new WeChatService())->connect(2);
$result = $app->order->unify([
'body' => $subject,
'out_trade_no' => $orderNumber,
'total_fee' => $amount * 100, // **单位:分**
'spbill_create_ip' => '', // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址
'notify_url' => Env::get('web.host') . '/api/vip/wechatNotify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型
'openid' => $user['openid'], //从用户额外表中取到openId
]);
$res = json_decode($result, 1)['return_msg'];
if ($res == 'OK') $this->success(MSG_OK,$result); //支付成功
$this->error('支付失败'); //支付失败
- 后端 只需要在调用微信支付地方调用这段方法即可。
- H5 支付,公众号支付,扫码支付,支付中签约,全部都是用这个接口下单。
- 前端 微信支付参考文档 https://pay.weixin.qq.com/wiki/doc/api/index.html。
- 我们要根据前端需要的参数进行返回。