- 安装微信支付sdk我这里使用的是wechatpay-php。
直接使用命令:composer require wechatpay/wechatpay
![安装php微信支付sdk](https://img-blog.csdnimg.cn/7329604fcf6d428ea2fa0232650e49df.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzU1Mjc4,size_16,color_FFFFFF,t_70#pic_center)
- 生成平台证书,这里取参考微信支付github文档说明
![下载证书工具](https://img-blog.csdnimg.cn/3ced54b8333e465f88b9d31c94587559.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzU1Mjc4,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/bca856621c844694815f023fbb4a366c.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzU1Mjc4,size_16,color_FFFFFF,t_70#pic_center)
![生成平台证书](https://img-blog.csdnimg.cn/e8b8047884024e1fa72d7e568d65cdf5.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzU1Mjc4,size_16,color_FFFFFF,t_70#pic_center)
![生成文件](https://img-blog.csdnimg.cn/a6b49124cb0a4b3ab462a6cf22a30156.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNzU1Mjc4,size_16,color_FFFFFF,t_70#pic_center)
- 创建唤起微信支付数据以api接口方式返回给app端。
public function wechatArousePay()
{
$order_id = $this->request->post('order_id/d', null);
$order_number = $this->request->post('order_number/s', null);
if (!$order_id and !$order_number) {
return self::fail('订单ID或订单号必须存在其中一个');
}
$order_map = array(
['uid', '=', $this->userinfo['account']],
['pay_state', '<>', 20]
);
if ($order_id) {
$order_map[] = ['order_id', '=', $order_id];
}
if ($order_number) {
$order_map[] = ['order_number', '=', $order_number];
}
$order_info = Order::where($order_map)->find();
if (!$order_info) {
return self::fail('该项目不存在或已支付');
}
if ($order_info['total_price'] <= 0) {
return self::fail('订单支付金额不合法!');
}
$PaymentAmount = bcmul($order_info['total_price'], 100, 0);
$merchantId = config('wechatpay.mch_id');
$merchantPrivateKeyFilePath = public_path