Commit 05fea7e4 authored by wanjilong's avatar wanjilong

add: update

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