//生成支付订单信息
public function orderInfo(){
$request = request();
$data_get = $request->param();
$uid = $data_get['uid'];
$price = $data_get['price'];
$data = array(
'uid'=>$uid,
'price'=>$price,
'ordersn'=>time().rand(1000,9999),
'productname'=>'APP充值',
'addtime'=>time(),
'status'=>2//未充值
);
db('orders')->insert($data);
$where['uid'] = $uid;
$where['status'] = 2;
$res = db('orders')->where($where)->order('addtime desc')->find();
$subject = 'APP充值'; //商品标题
$body = '给APP充值'.$price.'元'; //商品描述
$order_sn = $res['ordersn']; //订单号
$total_amount = $price; //充值金额
require_once(EXTEND_PATH.'Alipay/AopSdk.php');
$aop = new \AopClient();
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$aop->appId = "2018051560175558";
$aop->rsaPrivateKey = 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCTj7hmIqzpkyzdL+LeJRFi/FZAEJ3griU49EMOZAd0w9Kb9DyTh6qS2IA/GrF2W2Bo7qEnVFfTJH46Y1bprkuduRdmqhig1BgEEeODsSgJVtItjd5inx8txye/z0cBZi0JOh1vtPrqM90U/e1UvcRSLsAs+AHTSYY8wMuGOJiEuwzEiyU5I7qF79EuY/VDVCyLR1/DXbTUsy4Fby6LcbdVyZMG49tnCfeAeQUfTW1hVBStpWgVdQEHTud37YzQB4jaX/zN1R6cdcKqsEYaAJ2cj+8vfTVFOLUBLOEKnngo+Irsfr+vgJ9bA1ls04u8WMO0rPuQuoZnA8WniEq1c5UvAgMBAAECggEBAIpzBH6/9iDJeASoE2J+wQtw2rQNYzQV8NK5S9lKvTwvJ4Iv7E43sjFJdTrAHtV/8rtBem7eUfDHgq/h2QA0CrqXmX84BReRKF9ZMXC0XW41ycn4HDnINobLH152apbDeWn43vmagvoPY1V40p751iONvb3zjDLj/1EtS0hJ/cA6F62CwVVmNiXGBuFjUh/xV/8vMMXLI7EuO7rojnJmokrfzSPI76ta2AvXdhA4wtZiUvkO7Op/Ut9X8aUWVVSvsunRdPcyuArWE2wyZXbOCZrUJBCEq4zxtwg3GcWCL9doY3LVMNfPdWiWfd9MYSH1kh3QX7+aA60W8F3sRBGtykECgYEA4Nc7apoDHuunYDz6vKozLU0ry0NY/S2q7JFRBeHessJHmzlutCARkRTU7lsLv7AW3bYv9cmSDnVR8NAklOvD+c7C5DStbrWSJgJIbofx7AQAeBR4ZdH1EDyM48om3AoPiw9p86rDZLK4+Zo+BXYhS5d4STH19q0HR+cAyv1g3fECgYEAqALRL9E2qI8Q/e5DQyjH5zOeocbelXqcQaYPLpqD74MWWwHDxmnF73B/Vf3SrDjbdI1rpW6mHchGHdPbiwrreUpC2X8z1JUOInTF/errpUK9WWTFumK7ElACzxQafyVhAa6ZiC2Jva8Tu8gu47rrNLizx0uAS4TioZYC4cGTBR8CgYAXidDZlygOe6M5Kwkg6TyUWIjmLbXKQ5aqT4hI8l2LH1W5xWh2iQjtxF2KWpO/TKMIMQOSWrjktJmQeWnrAUeyBlhW5cDmXzHessx8bdUA3WZjK9ly52kdewlQ65/n11HLQCDadp0gFKnSz7gAgF55+HCKUSWr3m9tspxdo+sZMQKBgAQwXcrVaol1V7UdFaw8/g7zqIbcEHylm/O/Ei3VSGjWWd5XAuyVgovfwC0CsRf+KuqTBBYR1i5z6dughp7G3OwfP99wXnh0Zu/Q/YbBLrLmIRZzfsKQ550jRY6oL6jv46VJFybgC8kg7lsGOLUQ2gBsgn77kO1RGN1yggvi6al9AoGAOAj5DcCoVnAqQaJa48+NqjAVQNtVkWTiPfVXeWZ/fZk/2fZQ/CxLVdcqmDdQjkhXmD+8rgq0trzqigrrOM2/5drQxmTA7L7+bCSU2om38Y5Khp6J/aGWLWO1r6Y16G9a9yZoAYNfZB08d68AUQ90PD8CTQ60LZijHQbr/zDG/Vg=';
$aop->format = "json";
$aop->charset = "utf-8";
$aop->signType = "RSA2";
$aop->alipayrsaPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAleF75Kiwzt675L7ouW9COm9pleOMUXmveiJ7T/IRBVorMEXfqSyVTNR0e1qC72yqjh8ooNjzTTT6zdh4EBPi/wbmoBKRCbDygmPrPQ08ZijOO26JbHIAKZv+MC2iWNcm2s6G+TWpHynVL+DuH9gR81lwcSENXscS4W7ZE//RAYC9CN4zKbYD+IPso8onttbzBwxMkfAY8TUVKAz/5fSiL0/c1iFT8XI+tWyosVYejQ7EMY4WSSQvKo/EUaKjUDLPaFZ3wiaeK9bPaqEKHa4JqzZvtlidVktnoS7rWcRzJRo1igCzcrMvDpfHwXtGe5V1Fh1iCf3GI+5Rtk3aFkNEdQIDAQAB';
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
$request = new \AlipayTradeAppPayRequest();
$bizcontent = "{\"body\":\"{$body}\","
. "\"subject\": \"{$subject}\","
. "\"out_trade_no\": \"{$order_sn}\","
. "\"timeout_express\": \"30m\","
. "\"total_amount\": \"{$total_amount}\","
. "\"product_code\":\"QUICK_MSECURITY_PAY\""
. "}";
//商户外网可以访问的异步地址 (异步回掉地址,根据自己需求写)
$request->setNotifyUrl("http://117.34.109.195:81/public/AliPay.php");
$request->setBizContent($bizcontent);
//这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);
//return htmlspecialchars($response);
echo $response;
}
```
//回调逻辑
<?php
/**支付宝支付异步通知**/
//应用ID
const APPID = '2018051560175558';
//请填写开发者私钥去头去尾去回车,一行字符串
const RSA_PRIVATE_KEY ='MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCTj7hmIqzpkyzdL+LeJRFi/FZAEJ3griU49EMOZAd0w9Kb9DyTh6qS2IA/GrF2W2Bo7qEnVFfTJH46Y1bprkuduRdmqhig1BgEEeODsSgJVtItjd5inx8txye/z0cBZi0JOh1vtPrqM90U/e1UvcRSLsAs+AHTSYY8wMuGOJiEuwzEiyU5I7qF79EuY/VDVCyLR1/DXbTUsy4Fby6LcbdVyZMG49tnCfeAeQUfTW1hVBStpWgVdQEHTud37YzQB4jaX/zN1R6cdcKqsEYaAJ2cj+8vfTVFOLUBLOEKnngo+Irsfr+vgJ9bA1ls04u8WMO0rPuQuoZnA8WniEq1c5UvAgMBAAECggEBAIpzBH6/9iDJeASoE2J+wQtw2rQNYzQV8NK5S9lKvTwvJ4Iv7E43sjFJdTrAHtV/8rtBem7eUfDHgq/h2QA0CrqXmX84BReRKF9ZMXC0XW41ycn4HDnINobLH152apbDeWn43vmagvoPY1V40p751iONvb3zjDLj/1EtS0hJ/cA6F62CwVVmNiXGBuFjUh/xV/8vMMXLI7EuO7rojnJmokrfzSPI76ta2AvXdhA4wtZiUvkO7Op/Ut9X8aUWVVSvsunRdPcyuArWE2wyZXbOCZrUJBCEq4zxtwg3GcWCL9doY3LVMNfPdWiWfd9MYSH1kh3QX7+aA60W8F3sRBGtykECgYEA4Nc7apoDHuunYDz6vKozLU0ry0NY/S2q7JFRBeHessJHmzlutCARkRTU7lsLv7AW3bYv9cmSDnVR8NAklOvD+c7C5DStbrWSJgJIbofx7AQAeBR4ZdH1EDyM48om3AoPiw9p86rDZLK4+Zo+BXYhS5d4STH19q0HR+cAyv1g3fECgYEAqALRL9E2qI8Q/e5DQyjH5zOeocbelXqcQaYPLpqD74MWWwHDxmnF73B/Vf3SrDjbdI1rpW6mHchGHdPbiwrreUpC2X8z1JUOInTF/errpUK9WWTFumK7ElACzxQafyVhAa6ZiC2Jva8Tu8gu47rrNLizx0uAS4TioZYC4cGTBR8CgYAXidDZlygOe6M5Kwkg6TyUWIjmLbXKQ5aqT4hI8l2LH1W5xWh2iQjtxF2KWpO/TKMIMQOSWrjktJmQeWnrAUeyBlhW5cDmXzHessx8bdUA3WZjK9ly52kdewlQ65/n11HLQCDadp0gFKnSz7gAgF55+HCKUSWr3m9tspxdo+sZMQKBgAQwXcrVaol1V7UdFaw8/g7zqIbcEHylm/O/Ei3VSGjWWd5XAuyVgovfwC0CsRf+KuqTBBYR1i5z6dughp7G3OwfP99wXnh0Zu/Q/YbBLrLmIRZzfsKQ550jRY6oL6jv46VJFybgC8kg7lsGOLUQ2gBsgn77kO1RGN1yggvi6al9AoGAOAj5DcCoVnAqQaJa48+NqjAVQNtVkWTiPfVXeWZ/fZk/2fZQ/CxLVdcqmDdQjkhXmD+8rgq0trzqigrrOM2/5drQxmTA7L7+bCSU2om38Y5Khp6J/aGWLWO1r6Y16G9a9yZoAYNfZB08d68AUQ90PD8CTQ60LZijHQbr/zDG/Vg=';
//请填写支付宝公钥,一行字符串
const ALIPAY_RSA_PUBLIC_KEY ='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAleF75Kiwzt675L7ouW9COm9pleOMUXmveiJ7T/IRBVorMEXfqSyVTNR0e1qC72yqjh8ooNjzTTT6zdh4EBPi/wbmoBKRCbDygmPrPQ08ZijOO26JbHIAKZv+MC2iWNcm2s6G+TWpHynVL+DuH9gR81lwcSENXscS4W7ZE//RAYC9CN4zKbYD+IPso8onttbzBwxMkfAY8TUVKAz/5fSiL0/c1iFT8XI+tWyosVYejQ7EMY4WSSQvKo/EUaKjUDLPaFZ3wiaeK9bPaqEKHa4JqzZvtlidVktnoS7rWcRzJRo1igCzcrMvDpfHwXtGe5V1Fh1iCf3GI+5Rtk3aFkNEdQIDAQAB';
//验证签名
require_once('../extend/Alipay/AopSdk.php');
$aop = new \AopClient();
$aop->alipayrsaPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAleF75Kiwzt675L7ouW9COm9pleOMUXmveiJ7T/IRBVorMEXfqSyVTNR0e1qC72yqjh8ooNjzTTT6zdh4EBPi/wbmoBKRCbDygmPrPQ08ZijOO26JbHIAKZv+MC2iWNcm2s6G+TWpHynVL+DuH9gR81lwcSENXscS4W7ZE//RAYC9CN4zKbYD+IPso8onttbzBwxMkfAY8TUVKAz/5fSiL0/c1iFT8XI+tWyosVYejQ7EMY4WSSQvKo/EUaKjUDLPaFZ3wiaeK9bPaqEKHa4JqzZvtlidVktnoS7rWcRzJRo1igCzcrMvDpfHwXtGe5V1Fh1iCf3GI+5Rtk3aFkNEdQIDAQAB';
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");
//验签
if($flag){
//支付成功:TRADE_SUCCESS 交易完成:TRADE_FINISHED
if($_POST['trade_status'] == 'TRADE_SUCCESS' || $_POST['trade_status'] == 'TRADE_FINISHED'){
//获取订单号
$ordersn = $_POST['out_trade_no'];
//交易号
$trade_no = $_POST['trade_no'];
//订单支付时间
$gmt_payment = $_POST['gmt_payment'];
//转换为时间戳
$gtime = strtotime($gmt_payment);
//交易金额
$pay_money = $_POST['receipt_amount'];
//此处编写回调处理逻辑
header("Content-type: text/html; charset=utf-8");
try{
$conn = new PDO("mysql:host=localhost;dbname=xingzuo","root","167669123");
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo"数据库连接失败".$e->getMessage();
}
$sql1 = "select * from `orders` where ordersn ='".$ordersn."'";//按订单号查询
$orders = $conn->query($sql1)->fetch(PDO::FETCH_ASSOC);
$money = $orders['price'];
if($money == $pay_money){
//更新支付状态
$sql2 = "update `orders` set status='1' where id = '" .$orders['id']."'";
$res2 = $conn->prepare($sql2);
$res2 ->execute();
//更新支付类型
$sql3 = "update `orders` set paytype='1'where id = '" .$orders['id']."'";
$res3 = $conn->prepare($sql3);
$res3 ->execute();
//更新用户的账户余额
$user = "select * from `user` where id ='".$orders['uid']."'";
$user = $conn->query($user)->fetch(PDO::FETCH_ASSOC);
$balance = $user['balance'];
$money = $balance + $pay_money;
$sql4 = "update `user` set balance='".$money."' where id = '" .$orders['uid']."'";
$res4 = $conn->prepare($sql4);
$res4 ->execute();
//更新消费记录表
$note = '充值';
$time = time();
$sql5 = "insert into consumption(id,uid,amount,note,type,addtime,status) VALUES (null,'".$orders['uid']."','".$pay_money."','".$note."','1','".$time."','1')";
$res5 = $conn->prepare($sql5);
$abc = $res5->execute();
if($abc){
die('success');
}else{
exit('fail');
}
}else{
exit('fail');
}
}else{
exit('fail');
}
}else{
exit('fail');
}