随着微信支付的普及,越来越多的网站需要集成微信支付功能。在这篇文章中,我们将讨论如何在php中实现微信支付的发起和查询。
- 调用统一下单API
在PHP中发起微信支付,第一步是调用微信支付的统一下单API来生成预支付订单。该API需要传递一些必要的参数,包括商户的ID、支付金额、订单号、回调URL等。以下是一个示例代码:
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)和其他必要的参数。以下是一个示例代码:
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);- 跳转至支付页面
获取预支付订单信息后,我们可以将获取到的参数传递给前端,让用户在微信客户端中发起支付。以下是一个示例代码:
';
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 '';- 查询支付结果
支付完成后,我们需要查询支付结果以确保交易已成功完成。以下是一个示例代码:
聚彩手机商城系统,是一款专业于手机销售的独立手机网店系统,他拥有众多的手机参数选项,以及傻瓜式的设置选项,让您可以在5分钟内建立起专业而强大的手机销售网站。他拥有多套模版可以实时切换,前台拥有新闻中心、手机中心、配件中心、软件下载、手机报价、发货查询、保修查询、分店查询、产品的对比功能,代理与加盟的申请等功能,他拥有完善的会员中心,会员等级设置等,集成在线支付接口,超强SEO,可以设置所有页面的t
立即学习“PHP免费学习笔记(深入)”;
SetOut_trade_no('订单号');
$result = WxpayApi::orderQuery($input);
if ($result['trade_state'] == 'SUCCESS') {
echo '支付成功';
} else {
echo '支付失败';
}总结:
以上就是在PHP中实现微信支付的发起和查询的全部过程。当我们需要在网站上集成微信支付时,可以按照以上步骤进行操作。建议使用官方提供的SDK进行开发,可以节省很多时间和精力。










