欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP原生代码写的微信扫码支付实例

程序员文章站 2022-04-13 15:26:03
一款PHP原生代码写的微信扫码支付,不基于任何框架,完全手写。 扫码支付只要授权域名对就OK,本地是无法测试。跟openid也没有关系,所以跟支付授权目录页没关系。 ......

PHP原生代码写的微信扫码支付实例

一款php原生代码写的微信扫码支付,不基于任何框架,完全手写。

扫码支付只要授权域名对就ok,本地是无法测试。跟openid也没有关系,所以跟支付授权目录页没关系。

微信商户信息配置地址:weixinpay\lib\wxpay.config.php 第25行

1 const appid = 'wx422126b0b6bbfcfc'; // 绑定支付的appid(必须配置,开户邮件中可查看) 
2 const mchid = '1349825901';         // 商户号(必须配置,开户邮件中可查看) 
3 const key = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';  //商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置) 
4 const appsecret = '45843e705995a12106155f4c26f716dc';  //appsecret:公众帐号secert(仅jsapi支付的时候需要配置, 登录公众平台,进入开发者中心可设置)

 

微信扫码支付定义参数

1 $order_no = date("ymdhis") . rand(1000, 9999); //支付订单号 
2 $order_money = 0.01; //订单金额 元 
3 $url_notify = $url . "notify.php"; //微信回调地址

 

微信第三方推送支付成功信息地址notify.php

1 $order_no = $simple['out_trade_no'];//商户订单号 
2 $third_id = $simple['transaction_id'];//微信流水号 
3 $pay_money = $simple['total_fee'];//实际支付金额 
4 if ($order_no) {//若是支付成功 ,订单状态state=1表示已支付成功 
5     $query = mysql_query("update `order` set `state` = '1',update_time='" . time() . "',trade_no='".$third_id."' where `order_no` ='" . $order_no . "'"); 
6 }

 

每三秒检测支付是否成功

 1 <script> 
 2     changeorderstatues();//检测订单是否支付成功 
 3     function changeorderstatues() {  
 4         var order_no = $("#order_no").val(); 
 5  
 6         $.post("check_order.php", {order_no: order_no}, function(data) { 
 7             if (data > 0) { 
 8                 //订单返回值大于0表示支付成功 
 9                 alert("感谢您赞助,付款成功"); 
10                 location.href = "order_detail.php?order_no=" + order_no + ""; //支付成功后跳转到订单详情页 
11             } 
12         }) 
13         settimeout("changeorderstatues()", 3000); 
14     } 
15 </script>

 

检测订单是否支付成功check_oder.php

1 $order_no = isset($_post['order_no']) ? $_post['order_no'] : ""; 
2 if ($order_no) { 
3     $query = mysql_query("select id from `order` where order_no = '" . $order_no . "' and state = 1 limit 1"); 
4     $row = mysql_fetch_array($query); 
5     if ($row) { 
6         echo $row['id'];//若是返回值,大于0则说明订单支付成功 
7     } 
8 }

 本实例教程转自,转载请注明出处!