Commit 05fea7e4 authored by wanjilong's avatar wanjilong

add: update

parent e29c7899
......@@ -10,7 +10,7 @@ use App\Models\order\mysql\PayOrderItem;
use App\Models\order\mysql\PayOrderClearing;
use App\Models\order\mysql\PayOrderClearingItem;
use App\Models\order\mysql\RefundOrder;
use App\Services\Order\OrderService;
use App\Services\order\OrderService;
use App\Services\pingxx\PingxxService;
use App\Services\wallet\WalletService;
......@@ -28,7 +28,6 @@ class PayService
private $order_items = [];
private $pay_order = [];
private $pay_order_items = [];
private $clear_list = [];
private $clear_items_list = [];
private $wallet_list = [];
......@@ -37,12 +36,21 @@ class PayService
{
// 获取订单信息
$data = OrderService::getOrderInfo($order_id, $user_id);
$data = OrderService::getFullOrderData($order_id, $user_id);
if (empty($data['result'])) {
throw new PayException(['cus' => 1]);
}
$order = $data['result'];
$order = $data['result']['order_info'];
$metadata = [
'goods_sku_id'=>[],
'order_item_id'=>[],
];
foreach ($data['result']['order_item_list'] as $item) {
array_push($metadata['goods_sku_id'], $item['goods_sku_id']);
array_push($metadata['order_item_id'], $item['order_item_id']);
}
// 判断是否存在有效订单
$expire_time = time() + 30 * 60;
......@@ -73,7 +81,7 @@ class PayService
}
// 支持幂等,存在有效订单需要可以重复支付
$ret = PingxxService::getInstance()->createOrder($order);
$ret = PingxxService::getInstance()->createOrder($order, $metadata);
if (!empty($ret['error'])) {
throw new \ErrorException($ret['error']['message'], '2001');
}
......@@ -82,7 +90,6 @@ class PayService
$edit = [
'pay_order_status' => Dictionary::O_PAY_STATUS_PAYED,
'third_order_id' => $ret['id'],
//'pay_channel'=>$ret['charge_essentials']['channel'],
];
PayOrder::update($edit, ['pay_order_id' => $order['pay_order_id']]);
throw new PayException(['cus' => 3]);
......@@ -247,11 +254,11 @@ class PayService
$this->clear_list = [];
$this->clear_items_list = [];
$this->pay_order_items = [];
$this->wallet_list = [];
$pay_order_items = [];
foreach ($this->order_items as $r) {
$this->pay_order_items[] = [
$pay_order_items[] = [
'pay_order_item_id' => $this->gen_pay_order_item_id(),
'pay_order_id' => $this->pay_order['pay_order_id'],
'order_id' => $this->pay_order['order_id'],
......@@ -268,7 +275,7 @@ class PayService
try {
PayOrderClearing::beginTransaction();
$c_cnt = PayOrderItem::insert($this->pay_order_items, ['rowCount' => true]);
$c_cnt = PayOrderItem::insert($pay_order_items, ['rowCount' => true]);
$i_cnt = PayOrderClearing::insert($this->clear_list, ['rowCount' => true]);
$ci_cnt = PayOrderClearingItem::insert($this->clear_items_list, ['rowCount' => true]);
......
......@@ -128,7 +128,7 @@ class PingxxService
* @return mixed
* 创建订单
*/
public function createOrder($order) {
public function createOrder($order, $metadata) {
try {
Logger::info('创建订单发起', $order);
$royalty_users = [];
......@@ -144,6 +144,7 @@ class PingxxService
"client_ip" => IP::ip(),
'receipt_app' => Pingpp::getAppId(), // 收款方应用
'service_app' => Pingpp::getAppId(), // 服务方应用
'metadata' => $metadata, // 商户定制信息
]
);
......
......@@ -9,7 +9,7 @@ use App\Models\order\mysql\PayOrder;
use App\Models\order\mysql\PayOrderClearing;
use App\Models\order\mysql\PayOrderClearingItem;
use App\Models\order\mysql\RefundOrder;
use App\Services\Order\OrderService;
use App\Services\order\OrderService;
use App\Services\pingxx\PingxxService;
use Helpers\Strategy;
......@@ -32,14 +32,11 @@ class RefundService
// 获取子单信息
$ret = OrderService::getOrderItemData($order_item_id, $user_id);
Logger::info('test', $ret['result']);
if(empty($ret['result'])) {
throw new RefundException(['cus' => 1]);
}
$order_item = $ret['result'];
$where = [
'order_item_id'=>$order_item_id,
'user_id'=>$user_id,
......@@ -60,21 +57,23 @@ class RefundService
'goods_sku_id'=>$order_item['goods_sku_id'] ?? '',
],
];
try{
$ret = PingxxService::getInstance()->sendRefund($refund);
if(!empty($ret["data"])) {
$edit = ['request_pingxx_success_time'=>date('Y-m-d H:i:s')];
RefundOrder::update($edit, ['refund_order_id'=>$data['refund_order']['refund_order_id']]);
} else {
$edit = ['refund_order_status'=>Dictionary::REFUND_ORDER_STATUS_UNDO,];
throw new \Exception($ret['error']['message'], '2001');
}
return ['order_item_id'=>$order_item_id];
}catch (\Exception $e) {
$edit = ['refund_order_status'=>Dictionary::REFUND_ORDER_STATUS_UNDO,];
Logger::error($e->getMessage());
RefundOrder::update($edit, ['refund_order_id'=>$data['refund_order']['refund_order_id']]);
throw $e;
}
RefundOrder::update($edit, ['refund_order_id'=>$data['refund_order']['refund_order_id']]);
//返回信息
}
public function call_back($data) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment