使用php怎么实现微信支付之公众号支付功能

  介绍

使用php怎么实现微信支付之公众号支付功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1。该文件需放到支付授权目录下,可以在微信支付商户平台→产品中心→开发配置中设置。
2。如提示签名错误可以通过微信支付签名验证工具进行验证:微信公众平台支付接口调试工具

代码如下:

& lt; php ?   头(& # 39;- type: text/html;, Charset=utf - 8 # 39;);   时间=美元mchid  & # 39; xxxxx # 39;;,,,//微信支付商户号,PartnerID 通过微信支付商户资料审核后邮件发送   appid 美元;=,& # 39;xxxxx # 39;,,//微信支付申请对应的公众号的APPID   appKey 美元;=,& # 39;xxxxx # 39;,,//微信支付申请对应的公众号的APP 关键   apiKey 美元;=,& # 39;xxxxx # 39;,,//https://pay.weixin.qq.com 帐户设置,安全设置API安全API密钥——设置API密钥//①,获取用户openid   $ wxPay =, new  WxpayService ($ mchid appid美元appKey美元,美元apiKey);   美元$ openId =, wxPay→GetOpenid();,,//获取openid   如果(! $ openId),退出(& # 39;获取openId失败& # 39;);//②,统一下单   函数outTradeNo 美元;=,();,,//你自己的商品订单号   美元payAmount  0.01=,,,,,//付款金额,单位:元   orderName 美元;=,& # 39;支付测试& # 39;,,//订单标题   时间=美元notifyUrl  & # 39; https://www.xxx.com/wx/& # 39;;,,//付款成功后的回调地址(不要有问号)   payTime 美元;=,时间(),,,//付款时间   美元$ jsApiParameters =, wxPay→createJsBizPackage (openId, payAmount美元,outTradeNo美元,美元orderName, notifyUrl美元,美元payTime);   $ jsApiParameters =, json_encode ($ jsApiParameters);   比;   ,& lt; html>   ,& lt; head>   & lt;才能meta  charset=皍tf-8",/比;   & lt;才能meta  name=皏iewport",内容=翱矶?设备宽度,初始=1“/比;   & lt;才能title>微信支付样例——支付& lt;/title>   & lt;才能script 类型=拔谋?javascript"比;   ,,//调用微信JS  api 支付   ,,function  jsApiCall ()   ,,{   ,,,WeixinJSBridge.invoke (   ,,,,& # 39;getBrandWCPayRequest& # 39;   ,,,,& lt; ? php  echo  jsApiParameters美元;,?在,   ,,,,的函数(res) {   ,,,,,WeixinJSBridge.log (res.err_msg);   ,,,,,警报(res.err_code + res.err_desc + res.err_msg);   ,,,,}   ,,,);   ,,}   ,,function  callpay ()   ,,{   ,,,if  (typeof  WeixinJSBridge ==,“undefined") {   ,,,,如果(,document.addEventListener ) {   ,,,,,document.addEventListener (& # 39; WeixinJSBridgeReady& # 39;,, jsApiCall,,假);   ,,,,}else  if  (document.attachEvent) {   ,,,,,document.attachEvent (& # 39; WeixinJSBridgeReady& # 39;,, jsApiCall);   ,,,,,document.attachEvent (& # 39; onWeixinJSBridgeReady& # 39;,, jsApiCall);   ,,,,}   还有,,,}{   ,,,,jsApiCall ();   ,,,}   ,,}   & lt;才能/script>   ,& lt;/head>   ,& lt; body>   ,& lt; br/比;   ,& lt; font 颜色=? 9 acd32"祝辞& lt; b>该笔订单支付金额为& lt; span 祝辞& lt; ? php  echo  $ payAmount ?在元& lt;/span>钱& lt;/b> & lt;/font> & lt; br/祝辞& lt; br/比;   ,& lt; div 对齐=癱enter"比;   & lt;才能button ,类型=癰utton", onclick=癱allpay()“,在立即支付& lt;/button>   ,& lt;/div>   ,& lt;/body>   ,& lt;/html>   php & lt; ?   class  WxpayService   {   ,protected  mchid美元;   ,protected  appid美元;   ,protected  appKey美元;   ,protected  apiKey美元;   ,public  data 美元;=,空;      ,public  function  __construct (mchid美元,appid美元,appKey美元,美元键)   ,{   这个美元才能→mchid =, mchid美元;,//https://pay.weixin.qq.com 产品中心——开发配置——商户号   这个美元才能→appid =, appid美元;,//微信支付申请对应的公众号的appid   这个美元才能→appKey =, appKey美元;,//微信支付申请对应的公众号的APP 关键   这→美元才能apiKey =,关键;美元,//https://pay.weixin.qq.com 帐户设置,安全设置API安全API密钥——设置API密钥   ,}/* *   *,才能通过跳转获取用户的openid,跳转流程如下:   *才能,1,设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth3/authorize   *才能,2,微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:代码   *,才能@return 用户的openid   ,*/,public  function  GetOpenid ()   ,{//才能通过代码获得openid   if 才能;(!收取($ _GET[& # 39;代码# 39;])){   ,,//触发微信返回码代码   ,,scheme 美元;=,$ _SERVER [& # 39; https # 39;]==& # 39;在# 39;,?,& # 39;https://& # 39;,:, & # 39; http://& # 39;;   ,,baseUrl 美元;=,urlencode($方案。$ _SERVER [& # 39; HTTP_HOST& # 39;]。$ _SERVER [& # 39; PHP_SELF& # 39;]。$ _SERVER [& # 39; QUERY_STRING& # 39;]);   ,,url 美元;=,$ this→__CreateOauthUrlForCode ($ baseUrl);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用php怎么实现微信支付之公众号支付功能