微信支付开发交易通知实例,微信支付开发告警

作者: 新金沙平台  发布:2019-07-12

一、告警通知

一、交易通知

本文实例为大家分享了php学生管理系统源码,供大家参考,具体内容如下

为了及时通知商户异常,提高商户在微信平台的服务质量。微信后台会向商户推送告警通知,包括发货延迟、调用失败、通知失败等情况,通知的地址是商户在申请支付时填写的告警通知URL,在“公众平台-服务-服务中心-商户功能-商户基本资料-告警通知URL”可以查看。商户接收到告警通知后需要尽快修复其中提到的问题,以免影响线上经营。

用户在成功完成支付后,微信后台通知(POST)商户服务器(notify_url)支付结果。商户可以使用notify_url的通知结果进行个性化页面的展示。

功能: 1.添加/删除/修改
2.数据存储.
界面分布:
index.php --->主界面
add.php --->stu添加
action ---> sql中add/del/update (处理html表单-->mysql的数据存储 && 页面跳转)
edit.php --->stu修改
menu.php -->首页

告警通知URL接收的postData中还将含xml数据,格式如下:

对后台通知交互时,如果微信收到商户的应答不是success或超时,微信不为通知失败,微信会通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。

1. index.php

<xml>
  <AppId><![CDATA[wxf8b4f85f3a794e77]]></AppId>
  <ErrorType>1001</ErrorType>
  <Description><![CDATA[错识描述]]></Description>
  <AlarmContent><![CDATA[错误详情]]></AlarmContent>
  <TimeStamp>1393860740</TimeStamp>
  <AppSignature><![CDATA[f8164781a303f4d5a944a2dfc68411a8c7e4fbea]]></AppSignature>
  <SignMethod><![CDATA[sha1]]></SignMethod>
</xml>

后台通知通过请求中的 notify_url 迚行,采用 POST 机制。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>学生信息管理</title>
 <script>
  function doDel(id) {
   if(confirm('确认删除?')) {
    window.location='action.php?action=del&id=' id;
   }
  }
 </script>
</head>
<body>
<center>
 <?php
 include ("menu.php");
 ?>
 <h3>浏览学生信息</h3>
 <table width="500" border="1">
  <tr>
   <th>ID</th>
   <th>姓名</th>
   <th>性别</th>
   <th>年龄</th>
   <th>班级</th>
   <th>操作</th>
  </tr>
  <?php
//  1. 链接数据库
  try{
   $pdo = new PDO("uri:mysqlPdo.ini","root","1");
  }catch (PDOException $e) {
   die('connection failed'.$e->getMessage());
  }
  //2.执行sql
  $sql_select = "select * from stu";
  //3.data 解析
  foreach ( $pdo->query($sql_select) as $row) {
   echo "<tr>";
   echo "<th>{$row['id']} </th>";
   echo "<th>{$row['name']}</th>";
   echo "<th>{$row['sex']} </th>";
   echo "<th>{$row['age']} </th>";
   echo "<th>{$row['classid']}</th>";
   echo "<td>
     <a href='edit.php?id={$row['id']}'>修改</a>
     <a href='javascript:void(0);' onclick='doDel({$row['id']})'>删除</a>
    </td>";
   echo "</tr>";
  }
  ?>
 </table>
</center>
</body>
</html>

二、程序接收

同时,在postData中还将包含xml数据。

2. add.php

在微信支付开发(1) 微信支付URL配置中已提到,设置了告警通知url为

二、交易结果获取与响应

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>学生管理系统</title>
</head>
<body>
<center>

 <?php include ('menu.php'); ?>
 <h3>增加学生信息</h3>
 <form action="action.php?action=add" method="post">
  <table>
   <tr>
    <td>姓名</td>
    <td><input type="text" name="name"></td>
   </tr>
   <tr>
    <td>年龄</td>
    <td><input type="text" name="age"></td>
   </tr>
   <tr>
    <td>性别</td>
    <td><input type="radio" name="sex" value="男">男</td>
    <td><input type="radio" name="sex" value="女">女</td>
   </tr>
   <tr>
    <td>班级</td>
    <td><input type="text" name="classid"></td>
   </tr>
   <tr>
<!--    <td> </td>-->
    <td><a href="index.php">返回</td>
    <td><input type="submit" value="添加"></td>
    <td><input type="reset" value="重置"></td>
   </tr>
  </table> 
 </form>

</center>
</body>
</html>

根据官方文档,创建notice.php用于通知结果。

3. action.php

现在就是alarm.php函数的实现了,仿照微信基础接口SDK获取即可。将详细信息写入数据库或其他存储

程序内容如下所示:

<?php
/**
 * Created by PhpStorm.
 * User: hyh
 * Date: 16-7-7
 * Time: 下午9:37
 */
//1. 链接数据库
try{
 $pdo = new PDO("uri:mysqlPdo.ini","root","1");
}catch (PDOException $e) {
//   echo 'Connection failed: ' . $e->getMessage();
 die('connection failed'.$e->getMessage());
}

//2.action 的值做对操作

switch ($_GET['action']){

 case 'add'://add 
  $name = $_POST['name'];
  $sex = $_POST['sex'];
  $age = $_POST['age'];
  $classid = $_POST['classid'];

  $sql = "insert into stu (name, sex, age, classid) values ('{$name}', '{$sex}','{$age}','{$classid}')";
  $rw = $pdo->exec($sql); 
  if ($rw > 0){
   echo "<script>alter('添加成功');</script>";
  }else{
   echo "<script>alter('添加失败');</script>";
  }
  header('Location: index.php');
  break; 

 case 'del'://get
  $id = $_GET['id'];
  $sql = "delete from stu where id={$id}";
  $rw = $pdo->exec($sql);
  if ($rw > 0){
   echo "<script>alter('删除成功');</script>";
  }else{
   echo "<script>alter('删除失败');</script>";
  }
  header('Location: index.php');
  break;

 case 'edit'://post
  $id = $_POST['id'];
  $name = $_POST['name']; 
  $age = $_POST['age'];
  $classid = $_POST['classid'];
  $sex = $_POST['sex'];

//  echo $id, $age, $age, $name;
  $sql = "update stu set name='{$name}', age={$age},sex='{$sex}',classid={$classid} where id={$id};";
//  $sql = "update myapp.stu set name='jike',sex='女', age=24,classid=44 where id=17";
  print $sql;
  $rw = $pdo->exec($sql);
  if ($rw > 0){
   echo "<script>alter('更新成功');</script>";
  }else{
   echo "<script>alter('更新失败');</script>";
  }
  header('Location: index.php');
  break; 

 default:
  header('Location: index.php');
  break;
}

本文由新金沙平台发布于新金沙平台,转载请注明出处:微信支付开发交易通知实例,微信支付开发告警

关键词: 新金沙平台