随着微信支付的普及,越来越多的网站需要集成微信支付功能。在这篇文章中,我们将讨论如何在PHP中实现微信支付的发起和查询。
- 调用统一下单API
在PHP中发起微信支付,第一步是调用微信支付的统一下单API来生成预支付订单。该API需要传递一些必要的参数,包括商户的ID、支付金额、订单号、回调URL等。以下是一个示例代码:
<?php require_once(\'WxPayApi.php\'); require_once(\'WxPayUnifiedOrder.php\'); $order = new WxPayUnifiedOrder(); $order->SetBody(\'商品描述\'); $order->SetOut_trade_no(\'订单号\'); $order->SetTotal_fee(\'支付金额\'); $order->SetNotify_url(\'回调URL\'); $order->SetTrade_type(\'JSAPI\'); $order->SetOpenid(\'用户OpenID\'); $result = WxPayApi::unifiedOrder($order);
登录后复制
- 获取预支付订单信息
调用统一下单API后,我们需要获取预支付订单的信息,包括预支付交易会话标识(prepay_id)和其他必要的参数。以下是一个示例代码:
<?php require_once(\'WxPayApi.php\'); require_once(\'WxPayData.php\'); $input = new WxPayData(); $input->SetBody(\'商品描述\'); $input->SetOut_trade_no(\'订单号\'); $input->SetTotal_fee(\'支付金额\'); $input->SetNotify_url(\'回调URL\'); $input->SetTrade_type(\'JSAPI\'); $input->SetOpenid(\'用户OpenID\'); $result = WxPayApi::unifiedOrder($input); $prepay_id = $result[\'prepay_id\']; $params = [ \'appId\' => $result[\'appid\'], \'timeStamp\' => time(), \'nonceStr\' => $result[\'nonce_str\'], \'package\' => "prepay_id={$prepay_id}", \'signType\' => \'MD5\' ]; $params[\'paySign\'] = WxPayApi::getSign($params);
登录后复制
- 跳转至支付页面
获取预支付订单信息后,我们可以将获取到的参数传递给前端,让用户在微信客户端中发起支付。以下是一个示例代码:
<?php echo \'<script language="javascript">\'; echo \'WeixinJSBridge.invoke("getBrandWCPayRequest", { "appId":"\'.$params[\'appId\'].\'", "timeStamp":"\'.$params[\'timeStamp\'].\'", "nonceStr":"\'.$params[\'nonceStr\'].\'", "package":"\'.$params[\'package\'].\'", "signType":"\'.$params[\'signType\'].\'", "paySign":"\'.$params[\'paySign\'].\'" }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ){ alert("支付成功"); }else{ alert("支付失败"); } });\'; echo \'</script>\';
登录后复制
- 查询支付结果
支付完成后,我们需要查询支付结果以确保交易已成功完成。以下是一个示例代码:
<?php require_once(\'WxPayApi.php\'); $input = new WxPayOrderQuery(); $input->SetOut_trade_no(\'订单号\'); $result = WxpayApi::orderQuery($input); if ($result[\'trade_state\'] == \'SUCCESS\') { echo \'支付成功\'; } else { echo \'支付失败\'; }
登录后复制
总结:
关于在PHP中实现微信支付的发起和查询的文章就分享到这,如果对你有帮助欢迎继续关注我们哦
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/263605.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除