购买软路由-支付
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace app\common;
|
||||
|
||||
use extend\alipay\Alipay as AlipaySdk;
|
||||
use app\ros\model\Order as OrderModel;
|
||||
|
||||
|
||||
class Alipay {
|
||||
@@ -30,47 +31,25 @@ class Alipay {
|
||||
|
||||
if ($flag) {
|
||||
|
||||
$invest_service = new InvestModel();
|
||||
$update_data = [];
|
||||
$order_model = new OrderModel();
|
||||
$order_no=$_POST['out_trade_no'];
|
||||
$alipay_no = $_POST['trade_no'];
|
||||
|
||||
|
||||
|
||||
//获取充值信息
|
||||
$invest_info = $invest_service->getOne(['order_no'=>$order_no]);
|
||||
$order_info = $order_model->getOne(['order_no'=>$order_no]);
|
||||
|
||||
//更新余额
|
||||
$user_model = new UserModel();
|
||||
if (!empty($order_info['ali_wx_no'])) {
|
||||
die;
|
||||
}
|
||||
|
||||
$money = abs($invest_info['money']);
|
||||
$userid = $invest_info['user_id'];
|
||||
|
||||
$balance = $user_model->getOne(['id'=>$userid],'balance')['balance'];
|
||||
$old_balance= $balance;
|
||||
|
||||
$balance += $money;
|
||||
|
||||
$data = [
|
||||
'balance' => $balance
|
||||
];
|
||||
|
||||
$user_model->updateOne(['id'=>$userid,'balance'=>$old_balance],$data);
|
||||
$balance_model = new BalanceModel();
|
||||
$balance_data = [
|
||||
'user_id' => $userid,
|
||||
'money' => $money,
|
||||
'old_balance' => $old_balance,
|
||||
'new_balance' => $balance,
|
||||
'type' => 1,
|
||||
];
|
||||
$balance_model->add($balance_data);
|
||||
$update_data = [];
|
||||
|
||||
//更新充值订单
|
||||
$update_data['alipay_no'] = $alipay_no;
|
||||
$update_data['ali_wx_no'] = $alipay_no;
|
||||
$update_data['status'] = 1;
|
||||
$update_data['old_money'] = $old_balance;
|
||||
$update_data['new_money'] = $balance;
|
||||
$invest_service->updateOne(['order_no'=>$order_no],$update_data);
|
||||
$order_model->updateOne(['order_no'=>$order_no],$update_data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
52
app/common/Wxpay.php
Normal file
52
app/common/Wxpay.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace app\common;
|
||||
|
||||
use app\ros\model\Order as OrderModel;
|
||||
|
||||
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);
|
||||
|
||||
|
||||
//处理完成之后,告诉微信成功结果
|
||||
echo '<xml>
|
||||
<return_code><![CDATA[SUCCESS]]></return_code>
|
||||
<return_msg><![CDATA[OK]]></return_msg>
|
||||
</xml>';
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace app\ros\controller;
|
||||
|
||||
use app\ros\model\Product as ProductModel;
|
||||
use app\ros\model\Buyer as BuyerModel;
|
||||
use fastphp\base\Controller;
|
||||
|
||||
@@ -43,6 +42,10 @@ class Buyer extends Controller
|
||||
} else {
|
||||
$flag = $buyer_model->updateOne(['user_id'=>$this->userinfo['UserId']],$userinfo);
|
||||
}
|
||||
echo json_encode(['code' => 1]);
|
||||
if ($flag) {
|
||||
echo json_encode(['code' => 1]);
|
||||
} else {
|
||||
echo json_encode(['code' => -1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
198
app/ros/controller/Order.php
Normal file
198
app/ros/controller/Order.php
Normal file
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
namespace app\ros\controller;
|
||||
|
||||
use app\ros\model\Product as ProductModel;
|
||||
use app\ros\model\Order as OrderModel;
|
||||
use fastphp\base\Controller;
|
||||
use extend\wechatpay\Wxpay;
|
||||
use extend\alipay\Alipay;
|
||||
use app\user\model\User as UserModel;
|
||||
use app\user\model\UserScore as UserScore;
|
||||
|
||||
class Order extends Controller
|
||||
{
|
||||
/**
|
||||
* @description: 支付宝付款
|
||||
* @param {*}
|
||||
* @return {*}
|
||||
*/
|
||||
public function alipay()
|
||||
{
|
||||
$data = json_decode(file_get_contents("php://input"),true)['data'];
|
||||
|
||||
$product_model = new ProductModel();
|
||||
|
||||
$product_info = $product_model->getOne(['id' => $data['product_id']]);
|
||||
|
||||
$money = abs($product_info['price']);
|
||||
|
||||
$order_no = md5(time());
|
||||
|
||||
$order_model = new OrderModel();
|
||||
|
||||
$order_data = [
|
||||
'user_id' => $this->userinfo['UserId'],
|
||||
'product_id' => $product_info['id'],
|
||||
'product_name' => $product_info['name'],
|
||||
'order_price' => $product_info['price'],
|
||||
'real_price' => $money,
|
||||
'order_no' =>$order_no,
|
||||
'user' =>$data['username'],
|
||||
'phone' =>$data['phone'],
|
||||
'address' =>$data['address'],
|
||||
];
|
||||
$order_model->add($order_data);
|
||||
|
||||
$param = [
|
||||
'out_trade_no' => $order_no,
|
||||
'total_amount' => $money,
|
||||
'subject' => '购买软路由'.$product_info['name'].'-'.$this->userinfo['LoginName'],
|
||||
'product_code' => 'FAST_INSTANT_TRADE_PAY',
|
||||
'timeout_express' => '30m',
|
||||
];
|
||||
|
||||
|
||||
$pay_html = Alipay::pay($param);
|
||||
|
||||
$info = [
|
||||
'code'=>2,
|
||||
'data' => $pay_html
|
||||
];
|
||||
echo json_encode($info);
|
||||
die;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 微信支付
|
||||
* @param {*}
|
||||
* @return {*}
|
||||
*/
|
||||
public function wxpay() {
|
||||
$data = json_decode(file_get_contents("php://input"),true)['data'];
|
||||
|
||||
$product_model = new ProductModel();
|
||||
|
||||
$product_info = $product_model->getOne(['id' => $data['product_id']]);
|
||||
|
||||
$money = abs($product_info['price']);
|
||||
|
||||
$order_no = md5(time());
|
||||
|
||||
$order_model = new OrderModel();
|
||||
|
||||
$order_data = [
|
||||
'user_id' => $this->userinfo['UserId'],
|
||||
'product_id' => $product_info['id'],
|
||||
'product_name' => $product_info['name'],
|
||||
'order_price' => $product_info['price'],
|
||||
'real_price' => $money,
|
||||
'order_no' =>$order_no,
|
||||
'user' =>$data['username'],
|
||||
'phone' =>$data['phone'],
|
||||
'address' =>$data['address'],
|
||||
];
|
||||
$order_model->add($order_data);
|
||||
|
||||
//微信支付
|
||||
$wxpay = new Wxpay();
|
||||
|
||||
$param = [
|
||||
'username' => $this->userinfo['LoginName'],
|
||||
'money' => $money*100,
|
||||
'order_no' => $order_no,
|
||||
];
|
||||
$url = $wxpay->pay($param);
|
||||
|
||||
$info = [
|
||||
'code'=>1,
|
||||
'data' => $url
|
||||
];
|
||||
echo json_encode($info);
|
||||
die;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 余额支付
|
||||
* @param {*}
|
||||
* @return {*}
|
||||
*/
|
||||
public function balancepay(){
|
||||
$data = json_decode(file_get_contents("php://input"),true)['data'];
|
||||
|
||||
$product_model = new ProductModel();
|
||||
|
||||
$product_info = $product_model->getOne(['id' => $data['product_id']]);
|
||||
|
||||
$money = abs($product_info['price']);
|
||||
|
||||
$user_model = new UserModel;
|
||||
|
||||
$user_info = $user_model->getOne(['Id' => $this->userinfo['UserId']]);
|
||||
|
||||
$old_balance = $rest_money = $user_info['RestAmount'];
|
||||
|
||||
if ($money > $rest_money) {
|
||||
$info = [
|
||||
'code'=>-1,
|
||||
'msg' => '余额不足'
|
||||
];
|
||||
echo json_encode($info);
|
||||
die;
|
||||
} else {
|
||||
$rest_money -= $money;
|
||||
$rest_data = [
|
||||
'RestAmount' => $rest_money
|
||||
];
|
||||
if ($user_model->updateOne(['Id'=>$this->userinfo['UserId'],'RestAmount'=>$old_balance],$rest_data)) {
|
||||
$score_model = new UserScore;
|
||||
$score_data = [
|
||||
'UserId' => $this->userinfo['UserId'],
|
||||
'ScoreType' => '6',
|
||||
'ScoreTypeName' => '购买软路由',
|
||||
'ScoreValue' => $money,
|
||||
'UserName' => $user_info['Phone'],
|
||||
'OperateUserName' => $user_info['LoginCode'],
|
||||
'RestAmount1' => $old_balance,
|
||||
'RestAmount2' => $rest_money,
|
||||
'CreateTime' => date('Y-m-d H:i:s'),
|
||||
'UpdateTime' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
$score_model->add($score_data);
|
||||
} else {
|
||||
$info = [
|
||||
'code'=>-1,
|
||||
'msg' => '支付失败,请联系客服!'
|
||||
];
|
||||
echo json_encode($info);
|
||||
die;
|
||||
}
|
||||
|
||||
$order_no = md5(time());
|
||||
|
||||
$order_model = new OrderModel();
|
||||
|
||||
$order_data = [
|
||||
'user_id' => $this->userinfo['UserId'],
|
||||
'product_id' => $product_info['id'],
|
||||
'product_name' => $product_info['name'],
|
||||
'order_price' => $product_info['price'],
|
||||
'real_price' => $money,
|
||||
'order_no' =>$order_no,
|
||||
'user' =>$data['username'],
|
||||
'phone' =>$data['phone'],
|
||||
'address' =>$data['address'],
|
||||
];
|
||||
$order_model->add($order_data);
|
||||
}
|
||||
|
||||
$info = [
|
||||
'code'=>3,
|
||||
];
|
||||
echo json_encode($info);
|
||||
die;
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
9
app/ros/model/Order.php
Normal file
9
app/ros/model/Order.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
namespace app\ros\model;
|
||||
|
||||
use fastphp\base\Model;
|
||||
|
||||
class Order extends Model
|
||||
{
|
||||
protected $table = 'ros_order';
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
/*
|
||||
* @Author: 万永康
|
||||
* @Date: 2020-10-11 12:32:50
|
||||
* @LastEditTime: 2021-12-23 09:59:35
|
||||
* @LastEditTime: 2022-03-22 14:52:50
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @Description: In User Settings Edit
|
||||
* @FilePath: /phptest/alipay/Alipay.php
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
namespace extend\alipay;
|
||||
|
||||
require_once APP_PATH . 'extend/alipay/aop/AopCertClient.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/AopCertification.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/request/AlipayTradeQueryRequest.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/request/AlipayTradePagePayRequest.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/request/AlipayFundTransUniTransferRequest.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/AopCertClient.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/AopCertification.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/request/AlipayTradeQueryRequest.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/request/AlipayTradePagePayRequest.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/request/AlipayFundTransUniTransferRequest.php';
|
||||
|
||||
/**
|
||||
* 证书类型AopClient功能方法使用测试
|
||||
@@ -67,9 +67,9 @@ class Alipay
|
||||
|
||||
$param = json_encode($param);
|
||||
|
||||
$request->setReturnUrl('http://vps.juip.com/personal/invest-record.html');
|
||||
$request->setReturnUrl('http://www.juip.com/product/routeros');
|
||||
|
||||
$notifyUrl="http://vps-api.juip.com/common/alipay/alipayverify";
|
||||
$notifyUrl="http://php-api.juip.com/common/alipay/alipayverify";
|
||||
$request->setNotifyUrl($notifyUrl);
|
||||
|
||||
$request->setBizContent($param);
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
namespace extend\alipay;
|
||||
|
||||
require_once APP_PATH . 'extend/alipay/aop/AopCertClient.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/AopCertification.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/request/AlipayUserCertifyOpenInitializeRequest.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/request/AlipayUserCertifyOpenCertifyRequest.php';
|
||||
require_once APP_PATH . 'extend/alipay/aop/request/AlipayUserCertifyOpenQueryRequest.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/AopCertClient.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/AopCertification.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/request/AlipayUserCertifyOpenInitializeRequest.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/request/AlipayUserCertifyOpenCertifyRequest.php';
|
||||
require_once APP_PATH . 'extends/alipay/aop/request/AlipayUserCertifyOpenQueryRequest.php';
|
||||
|
||||
/**
|
||||
* 证书类型AopClient功能方法使用测试
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
namespace extend\wechatpay;
|
||||
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . 'extend/wechatpay/example/WxPay.NativePay.php';
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . 'extends/wechatpay/example/WxPay.NativePay.php';
|
||||
class Wxpay
|
||||
{
|
||||
/**
|
||||
@@ -13,12 +13,12 @@ class Wxpay
|
||||
public function pay($param) {
|
||||
$notify = new \NativePay();
|
||||
$input = new \WxPayUnifiedOrder();
|
||||
$input->SetBody("VPS充值-".$param['username']);
|
||||
$input->SetBody("购买软路由-".$param['username']);
|
||||
$input->SetOut_trade_no($param['order_no']);
|
||||
$input->SetTotal_fee($param['money']);
|
||||
$input->SetTime_start(date("YmdHis"));
|
||||
$input->SetTime_expire(date("YmdHis", time() + 600));
|
||||
$input->SetNotify_url("http://vps-api.juip.com/common/wxpay/wxpayverify");
|
||||
$input->SetNotify_url("http://php-api.juip.com/common/wxpay/wxpayverify");
|
||||
$input->SetTrade_type("NATIVE");
|
||||
|
||||
$result = $notify->GetPayUrl($input);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Config.Interface.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Config.Interface.php";
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once "WxPay.Config.php";
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once "WxPay.Config.php";
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
**/
|
||||
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once "WxPay.JsApiPay.php";
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once "WxPay.MicroPay.php";
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
**/
|
||||
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once "WxPay.NativePay.php";
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
**/
|
||||
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once '../lib/WxPay.Notify.php';
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
**/
|
||||
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
require_once '../lib/WxPay.Notify.php';
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* 请勿直接直接使用样例对外提供服务
|
||||
*
|
||||
**/
|
||||
require_once APP_PATH . "extend/wechatpay/lib/WxPay.Api.php";
|
||||
require_once APP_PATH . "extends/wechatpay/lib/WxPay.Api.php";
|
||||
|
||||
require_once "WxPay.Config.php";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user