Files
juipphp/app/common/controller/Wxpay.php

198 lines
6.8 KiB
PHP
Raw Normal View History

2022-03-22 16:05:07 +08:00
<?php
2022-04-09 14:40:58 +08:00
namespace app\common\controller;
2022-03-22 16:05:07 +08:00
use app\ros\model\Order as OrderModel;
2023-12-26 16:37:09 +08:00
use app\http\model\User as UserModel;
use app\http\model\Recharge as RechargeModel;
2024-02-01 17:13:32 +08:00
use app\jinyou\model\ProductOrder as ProductOrderModel;
use app\jinyou\model\Account as AccountModel;
use app\jinyou\model\Package as PackageModel;
2024-02-22 16:13:10 +08:00
use app\jinqiao\model\Order as JqOrderModel;
use app\jinqiao\model\Key as KeyModel;
2022-03-22 16:05:07 +08:00
class Wxpay {
/**
* @description: 获取支付宝是否支付成功
* @param {*}
* @return {*}
*/
public function wxpayVerify() {
//接收数据
$xmlData = file_get_contents('php://input');
libxml_disable_entity_loader(true);
$data = json_decode(json_encode(simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
$order_model = new OrderModel();
$order_no = $data['out_trade_no'];
$wx_no = $data['transaction_id'];
//获取充值信息
$order_info = $order_model->getOne(['order_no'=>$order_no]);
if (!empty($order_info['ali_wx_no'])) {
die;
}
//判断算出的签名和通知信息的签名是否一致
if($data['result_code'] == 'SUCCESS' && $data['appid'] == 'wx18e5b4f42773c3ec' && $data['mch_id'] == '1571608411'){
$update_data = [];
//更新充值订单
$update_data['ali_wx_no'] = $wx_no;
$update_data['status'] = 1;
$order_model->updateOne(['order_no'=>$order_no],$update_data);
2023-12-26 16:37:09 +08:00
//处理完成之后,告诉微信成功结果
echo '<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>';
exit();
}
}
public function httpwxpayVerify() {
//接收数据
$xmlData = file_get_contents('php://input');
libxml_disable_entity_loader(true);
$data = json_decode(json_encode(simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
$order_model = new RechargeModel();
$order_no = $data['out_trade_no'];
$wx_no = $data['transaction_id'];
//获取充值信息
$order_info = $order_model->getOne(['order_no'=>$order_no]);
if (!empty($order_info['ali_wx_no'])) {
die;
}
//判断算出的签名和通知信息的签名是否一致
if($data['result_code'] == 'SUCCESS' && $data['appid'] == 'wx18e5b4f42773c3ec' && $data['mch_id'] == '1571608411'){
$update_data = [];
//更新充值订单
$update_data['ali_wx_no'] = $wx_no;
$update_data['pay_status'] = 1;
$order_model->updateOne(['order_no'=>$order_no],$update_data);
$user_model = new UserModel();
$user_info = $user_model->getOne(['Id' => $order_info['user_id']]);
$user_update = [];
$user_update['ju_money'] = $user_info['ju_money'] + $order_info['ju_money'];
$user_model->updateOne(['Id'=>$order_info['user_id']],$user_update);
2024-02-01 17:13:32 +08:00
//处理完成之后,告诉微信成功结果
echo '<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>';
exit();
}
}
public function jinyouwxpayverify() {
//接收数据
$xmlData = file_get_contents('php://input');
libxml_disable_entity_loader(true);
$data = json_decode(json_encode(simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
$order_model = new ProductOrderModel();
$order_no = $data['out_trade_no'];
$wx_no = $data['transaction_id'];
//获取充值信息
$order_info = $order_model->getOne(['OrderNo'=>$order_no]);
if (!empty($order_info['TradeNo'])) {
die;
}
//判断算出的签名和通知信息的签名是否一致
if($data['result_code'] == 'SUCCESS' && $data['appid'] == 'wx18e5b4f42773c3ec' && $data['mch_id'] == '1571608411'){
$update_data = [];
//更新充值订单
$update_data['TradeNo'] = $wx_no;
$update_data['OrderState'] = 90;
$order_model->updateOne(['OrderNo'=>$order_no],$update_data);
2024-02-02 09:50:54 +08:00
$account_info = json_decode($order_info['remark2'],true);
2024-02-01 17:13:32 +08:00
$user_model = new UserModel();
$user_info = $user_model->getOne(['Id' => $order_info['UserId']]);
$package_model = new PackageModel;//套餐详情
$package_info = $package_model->getOne(['Id' => $account_info['package_id']]);
2024-02-02 10:18:42 +08:00
$package_info['ProductName'] = $order_info['ProductName'];
2024-02-01 17:13:32 +08:00
$account_model = new AccountModel;
$account_model->open_account($account_info,$user_info,$package_info);
2024-02-22 16:13:10 +08:00
//处理完成之后,告诉微信成功结果
echo '<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>';
exit();
}
}
public function jinqiaowxpayverify() {
//接收数据
$xmlData = file_get_contents('php://input');
libxml_disable_entity_loader(true);
$data = json_decode(json_encode(simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
$order_model = new JqOrderModel();
$order_no = $data['out_trade_no'];
$wx_no = $data['transaction_id'];
//获取充值信息
$order_info = $order_model->getOne(['order_no'=>$order_no]);
if (!empty($order_info['TradeNo'])) {
die;
}
//判断算出的签名和通知信息的签名是否一致
if($data['result_code'] == 'SUCCESS' && $data['appid'] == 'wx18e5b4f42773c3ec' && $data['mch_id'] == '1571608411'){
$update_data = [];
//更新充值订单
$update_data['ali_wx_no'] = $wx_no;
$update_data['status'] = 1;
$order_model->updateOne(['order_no'=>$order_no],$update_data);
$key_model = new KeyModel();
$key_model->where(['package_id' => $order_info['package_id'],'isused' =>0])->limit(1)->update(['isused' => 1,'user_id' => $order_info['user_id']]);
2022-03-22 16:05:07 +08:00
//处理完成之后,告诉微信成功结果
echo '<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>';
exit();
}
}
}