Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
service
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
aimeiyue
service
Commits
0bdef142
Commit
0bdef142
authored
Jan 09, 2025
by
lizhilin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新
parent
c4754a7a
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
355 additions
and
19 deletions
+355
-19
app/Admin/Controllers/HfCompanyMemberController.php
+5
-0
app/Admin/Controllers/HfProvAreaCodeController.php
+23
-0
app/Admin/routes.php
+2
-0
app/Http/Controllers/Api/HfOrderController.php
+87
-3
app/Http/Controllers/Api/HfSettleAccountController.php
+29
-4
app/Http/Controllers/Api/MerchantController.php
+43
-0
app/Http/Controllers/Api/OrderController.php
+6
-3
app/Models/Adapay.php
+94
-8
app/Models/HfProvAreaCode.php
+12
-0
app/Models/OrderDivideRecord.php
+42
-1
routes/api.php
+12
-0
No files found.
app/Admin/Controllers/HfCompanyMemberController.php
View file @
0bdef142
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
use
App\Command\Log
;
use
App\Command\Log
;
use
App\Models\HfCompanyMember
;
use
App\Models\HfCompanyMember
;
use
App\Models\HfProvAreaCode
;
use
App\Models\Adapay
;
use
App\Models\Adapay
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Grid
;
use
Dcat\Admin\Grid
;
...
@@ -141,6 +142,9 @@ protected function form()
...
@@ -141,6 +142,9 @@ protected function form()
$form
->
radio
(
'entry_mer_type'
)
->
options
([
'0'
=>
'个体工商户'
,
'1'
=>
'企业'
])
->
default
(
1
);
$form
->
radio
(
'entry_mer_type'
)
->
options
([
'0'
=>
'个体工商户'
,
'1'
=>
'企业'
])
->
default
(
1
);
$form
->
text
(
'social_credit_code'
)
->
required
()
->
help
(
'示例值:91310104660736427E'
);
$form
->
text
(
'social_credit_code'
)
->
required
()
->
help
(
'示例值:91310104660736427E'
);
$form
->
text
(
'name'
)
->
required
()
->
help
(
'示例值:上海汇付支付有限公司'
);
$form
->
text
(
'name'
)
->
required
()
->
help
(
'示例值:上海汇付支付有限公司'
);
$form
->
select
(
'prov_code'
,
'省份'
)
->
options
(
HfProvAreaCode
::
where
(
'parent_id'
,
0
)
->
pluck
(
'title'
,
'area_code'
))
->
rules
(
'required'
)
->
load
(
'area_code'
,
'/hf-area-code'
);
// 城市
$form
->
select
(
'area_code'
,
'城市'
)
->
required
();
$form
->
text
(
'social_credit_code_begin'
)
->
required
()
->
help
(
'示例值:20220427'
);
$form
->
text
(
'social_credit_code_begin'
)
->
required
()
->
help
(
'示例值:20220427'
);
$form
->
text
(
'social_credit_code_expires'
)
->
required
()
->
help
(
'示例值:20270427'
);
$form
->
text
(
'social_credit_code_expires'
)
->
required
()
->
help
(
'示例值:20270427'
);
$form
->
text
(
'address'
)
->
required
();
$form
->
text
(
'address'
)
->
required
();
...
@@ -217,6 +221,7 @@ function (Form $form, $result) {
...
@@ -217,6 +221,7 @@ function (Form $form, $result) {
$result
=
(
new
Adapay
())
->
createCompany
(
$member_params
);
$result
=
(
new
Adapay
())
->
createCompany
(
$member_params
);
Log
::
add
(
'创建企业用户响应结果'
,
$result
);
Log
::
add
(
'创建企业用户响应结果'
,
$result
);
if
(
$result
[
'status'
]
==
'failed'
)
{
if
(
$result
[
'status'
]
==
'failed'
)
{
DB
::
table
(
'hf_company_member'
)
->
where
(
'id'
,
$hf_id
)
->
delete
();
return
$form
->
response
()
->
error
(
$result
[
'error_msg'
]);
return
$form
->
response
()
->
error
(
$result
[
'error_msg'
]);
}
else
{
}
else
{
DB
::
table
(
'hf_company_member'
)
->
where
(
'id'
,
$hf_id
)
->
update
([
'member_id'
=>
$result
[
'member_id'
],
'status'
=>
$result
[
'status'
]]);
DB
::
table
(
'hf_company_member'
)
->
where
(
'id'
,
$hf_id
)
->
update
([
'member_id'
=>
$result
[
'member_id'
],
'status'
=>
$result
[
'status'
]]);
...
...
app/Admin/Controllers/HfProvAreaCodeController.php
0 → 100644
View file @
0bdef142
<?php
namespace
App\Admin\Controllers
;
use
App\Models\City
;
use
App\Models\HfProvAreaCode
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Grid
;
use
Dcat\Admin\Show
;
use
Dcat\Admin\Http\Controllers\AdminController
;
use
Illuminate\Http\Request
;
class
HfProvAreaCodeController
extends
AdminController
{
public
function
getList
(
Request
$request
)
{
$code
=
$request
->
get
(
'q'
);
$id
=
HfProvAreaCode
::
where
(
'area_code'
,
$code
)
->
value
(
'id'
);
return
HfProvAreaCode
::
where
(
'parent_id'
,
$id
)
->
select
([
'area_code as id'
,
'title as text'
])
->
get
();
}
}
app/Admin/routes.php
View file @
0bdef142
...
@@ -78,6 +78,8 @@
...
@@ -78,6 +78,8 @@
$router
->
get
(
'city'
,
'CityController@getList'
);
//城市选择-联动
$router
->
get
(
'city'
,
'CityController@getList'
);
//城市选择-联动
$router
->
get
(
'hf-area-code'
,
'HfProvAreaCodeController@getList'
);
//汇付城市编码-联动
$router
->
get
(
'get-store-list'
,
'MerchantGoodsStoreController@getList'
);
//门店选择-联动
$router
->
get
(
'get-store-list'
,
'MerchantGoodsStoreController@getList'
);
//门店选择-联动
$router
->
resource
(
'hf-company-member'
,
'HfCompanyMemberController'
);
//汇付天下-企业用户
$router
->
resource
(
'hf-company-member'
,
'HfCompanyMemberController'
);
//汇付天下-企业用户
...
...
app/Http/Controllers/Api/HfOrderController.php
View file @
0bdef142
...
@@ -4,13 +4,13 @@
...
@@ -4,13 +4,13 @@
use
App\Command\Log
;
use
App\Command\Log
;
use
App\Models\Adapay
;
use
App\Models\Adapay
;
use
App\Models\UserAddress
;
use
App\Models\OrderDivideRecord
;
use
App\Models\Store
;
use
App\Models\Good
as
GoodModel
;
use
App\Models\Good
as
GoodModel
;
use
App\Models\
GoodSku
;
use
App\Models\
OrderInfo
;
use
App\Models\OrderGoods
;
use
App\Models\OrderGoods
;
use
App\Models\OrderInfo
as
OrderInfoModel
;
use
App\Models\OrderInfo
as
OrderInfoModel
;
use
App\Models\MerchantGoodSku
;
use
App\Models\MerchantGoodSku
;
use
App\Models\PaymentRecord
;
use
Dcat\Admin\Grid\Displayers\Orderable
;
use
Dcat\Admin\Grid\Displayers\Orderable
;
use
Illuminate\Http\Request
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\DB
;
use
Illuminate\Support\Facades\DB
;
...
@@ -28,4 +28,88 @@ public function refundNotify()
...
@@ -28,4 +28,88 @@ public function refundNotify()
$res
=
(
new
Adapay
())
->
refundNotify
(
$fields
);
$res
=
(
new
Adapay
())
->
refundNotify
(
$fields
);
return
$res
;
return
$res
;
}
}
//手动创建支付确认对象
public
function
paymentConfirm
(
Request
$request
)
{
$order_id
=
$request
->
order_id
??
0
;
$orderObj
=
OrderInfo
::
where
([
'id'
=>
$order_id
])
->
first
();
if
(
!
$orderObj
)
{
return
$this
->
JsonResponse
(
''
,
'订单不存在'
,
201
);
}
//解冻通知
$order_no
=
$orderObj
->
order_sn
;
$freeze_stat
=
$message
[
'freeze_stat'
]
??
''
;
if
(
$orderObj
->
freeze_stat
==
'FREEZE'
)
{
//交易记录
$prObj
=
PaymentRecord
::
where
(
'order_sn'
,
$order_no
)
->
first
();
# 支付确认参数设置
$payment_params
=
array
(
"payment_id"
=>
$prObj
->
payment_id
,
"order_no"
=>
'payconfirm_'
.
date
(
"YmdHis"
)
.
rand
(
100000
,
999999
),
"confirm_amt"
=>
$prObj
->
money
,
"description"
=>
""
,
"div_members"
=>
""
//分账参数列表 默认是数组List
);
//分账列表
$payment_params
[
'div_members'
]
=
OrderDivideRecord
::
divide
(
$orderObj
->
id
);
//返回分账参数列表
Log
::
add
(
'发起支付确认'
,
$payment_params
);
DB
::
beginTransaction
();
try
{
$orderObj
->
freeze_stat
=
'UNFREEZE'
;
if
(
$orderObj
->
save
())
{
(
new
Adapay
())
->
createPaymentConfirm
(
$payment_params
);
}
DB
::
commit
();
}
catch
(
\Exception
$e
)
{
Log
::
add
(
'解冻,支付确认对象失败'
,
$e
);
DB
::
rollBack
();
return
false
;
}
}
}
//定时任务--查询支付对象列表
public
function
autoQueryList
()
{
$payment_params
=
array
(
"app_id"
=>
env
(
'HUIFU_APPID'
),
//"payment_id" => "10000000000000001",
//"order_no" => "20190919071231283468359213",
"page_index"
=>
""
,
"page_size"
=>
""
,
"created_gte"
=>
""
,
"created_lte"
=>
""
);
$chunkSize
=
10
;
// 每次处理的订单数量
$orders
=
OrderInfoModel
::
where
([
"freeze_stat"
=>
'FREEZE'
])
->
orderBy
(
'id'
,
'desc'
)
->
take
(
$chunkSize
);
while
(
$orders
->
count
()
>
0
)
{
$orders
->
chunk
(
$chunkSize
,
function
(
$batch
)
use
(
$payment_params
)
{
foreach
(
$batch
as
$order
)
{
$nowtime
=
time
();
$pyObj
=
PaymentRecord
::
where
(
'order_sn'
,
$order
->
order_sn
)
->
first
();
$payment_params
[
'payment_id'
]
=
$pyObj
->
payment_id
;
$payment_params
[
'order_no'
]
=
$pyObj
->
order_sn
;
$result
=
(
new
Adapay
())
->
queryList
(
$payment_params
);
// if ($order->created_at) {
// $created_at = strtotime($order->created_at);
// $diff_time = $nowtime - $created_at;
// if ($diff_time > 900) {
// $order->save();
// }
// }
}
});
// 移动游标到下一批
$orders
->
skip
(
$chunkSize
);
$orders
=
$orders
->
getQuery
();
sleep
(
2
);
}
return
'--ok--'
;
}
}
}
app/Http/Controllers/Api/HfSettleAccountController.php
View file @
0bdef142
...
@@ -38,11 +38,7 @@ public function createMemberAccount(Request $request)
...
@@ -38,11 +38,7 @@ public function createMemberAccount(Request $request)
"cert_id"
=>
$cert_id
,
"cert_id"
=>
$cert_id
,
"cert_type"
=>
"00"
,
"cert_type"
=>
"00"
,
"tel_no"
=>
$tel_no
,
"tel_no"
=>
$tel_no
,
// "bank_code" => "03060000",
// "bank_name" => "建",
"bank_acct_type"
=>
"2"
,
"bank_acct_type"
=>
"2"
,
// "prov_code" => "0031",
// "area_code" => "3100",
]
]
);
);
$local_params
=
[
$local_params
=
[
...
@@ -147,6 +143,35 @@ public function createCompanyAccount(Request $request)
...
@@ -147,6 +143,35 @@ public function createCompanyAccount(Request $request)
}
}
}
}
//查询已绑定结算账户
public
function
myCard
(
Request
$request
)
{
$userObj
=
$request
->
user
();
$member_type
=
$request
->
member_type
??
0
;
$role_id
=
$useObj
->
role_id
??
''
;
if
(
$role_id
==
1
)
{
//商家
$mid
=
$userObj
->
merchant_id
;
$member_id
=
HfCompanyMember
::
where
([
'merchant_id'
=>
$mid
,
'status'
=>
'succeeded'
])
->
value
(
'member_id'
);
}
else
{
$mid
=
$userObj
->
id
;
$member_id
=
$userObj
->
member_id
;
}
if
(
!
$member_id
)
{
return
$this
->
JsonResponse
(
''
,
'参数错误'
,
201
);
}
$accountObj
=
HfSettleAccount
::
where
([
'member_type'
=>
$member_type
,
'mid'
=>
$mid
])
->
first
();
$account_params
=
array
(
'card_id'
=>
$accountObj
->
card_id
,
'card_name'
=>
$accountObj
->
card_name
,
'tel_no'
=>
$accountObj
->
tel_no
,
'bank_code'
=>
$accountObj
->
bank_code
??
''
,
'bank_name'
=>
$accountObj
->
bank_name
??
''
,
);
return
$this
->
JsonResponse
(
$account_params
);
}
//查询结算账户
//查询结算账户
public
function
queryAccount
(
Request
$request
)
{}
public
function
queryAccount
(
Request
$request
)
{}
...
...
app/Http/Controllers/Api/MerchantController.php
View file @
0bdef142
...
@@ -6,7 +6,10 @@
...
@@ -6,7 +6,10 @@
use
App\Models\Merchant
;
use
App\Models\Merchant
;
use
App\Models\User
as
UserModel
;
use
App\Models\User
as
UserModel
;
use
App\Models\OrderDivideRecord
;
use
App\Models\OrderDivideRecord
;
use
App\Models\OrderGoods
;
use
App\Models\OrderInfo
;
use
Illuminate\Http\Request
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\DB
;
class
MerchantController
extends
BaseController
class
MerchantController
extends
BaseController
{
{
...
@@ -53,4 +56,44 @@ public function getUserList(Request $request)
...
@@ -53,4 +56,44 @@ public function getUserList(Request $request)
return
$this
->
JsonResponse
(
$data
);
return
$this
->
JsonResponse
(
$data
);
}
}
//我的用户-订单列表(展示近10天)
public
function
getOrderList
(
Request
$request
)
{
$mer_id
=
4
;
//$request->user()->merchant_id;
$user_id
=
$request
->
user_id
??
0
;
if
(
!
$user_id
)
{
return
$this
->
JsonResponse
(
''
,
'参数错误'
,
201
);
}
$daysAgo
=
date
(
'Y-m-d H:i:s'
,
strtotime
(
"-10 days"
));
$list
=
DB
::
table
(
"order_divide_record as odr"
)
->
select
(
DB
::
raw
(
'odr.order_id, o.order_status,o.created_at'
))
->
leftJoin
(
'li_order_info as o'
,
'odr.order_id'
,
'='
,
'o.id'
)
//->whereDate('odr.created_at', '>', $daysAgo)
->
where
([
'odr.sh_type'
=>
3
,
'odr.um_id'
=>
$mer_id
,
'odr.user_id'
=>
$user_id
])
->
limit
(
100
)
->
get
()
->
toArray
();
foreach
(
$list
as
$key
=>
$item
)
{
$ogRows
=
DB
::
table
(
'li_order_goods'
)
->
where
(
'order_id'
,
$item
->
order_id
)
->
select
(
DB
::
raw
(
'goods_name,goods_number,goods_price,goods_img,goods_attr'
))
->
get
()
->
toArray
();
$order_goods
=
[];
foreach
(
$ogRows
as
$key
=>
$valObj
)
{
$tmp
=
[];
$tmp
[
'goods_name'
]
=
$valObj
->
goods_name
;
$tmp
[
'goods_number'
]
=
$valObj
->
goods_number
;
$tmp
[
'goods_attr'
]
=
$valObj
->
goods_attr
;
$tmp
[
'goods_price'
]
=
$valObj
->
goods_price
;
$tmp
[
'goods_img'
]
=
$valObj
->
goods_img
?
togetherFilePath
(
$valObj
->
goods_img
)
:
''
;
array_push
(
$order_goods
,
$tmp
);
}
$list
[
$key
]
->
status_txt
=
OrderInfo
::
STATUS_OPTIONS
[
$list
[
$key
]
->
order_status
];
$list
[
$key
]
->
og
=
$order_goods
;
}
return
$this
->
JsonResponse
(
$list
);
}
}
}
app/Http/Controllers/Api/OrderController.php
View file @
0bdef142
...
@@ -62,7 +62,8 @@ public function CreateBuyOrder(Request $request)
...
@@ -62,7 +62,8 @@ public function CreateBuyOrder(Request $request)
$orderObj
=
new
OrderInfoModel
();
$orderObj
=
new
OrderInfoModel
();
$userObj
=
$request
->
user
();
$userObj
=
$request
->
user
();
$user_id
=
$userObj
->
id
;
$user_id
=
$userObj
->
id
;
$merchant_id
=
(
int
)
$userObj
->
merchant_id
;
$merchant_id
=
(
int
)
$userObj
->
merchant_id
;
//绑定企业
$spuid
=
$userObj
->
spuid
;
//直推
$goods_id
=
$request
->
goods_id
;
$goods_id
=
$request
->
goods_id
;
$num
=
$request
->
num
??
1
;
$num
=
$request
->
num
??
1
;
$attr_id
=
$request
->
attr_id
??
0
;
$attr_id
=
$request
->
attr_id
??
0
;
...
@@ -133,6 +134,7 @@ public function CreateBuyOrder(Request $request)
...
@@ -133,6 +134,7 @@ public function CreateBuyOrder(Request $request)
$orderObj
->
delivery_type
=
$delivery_type
;
$orderObj
->
delivery_type
=
$delivery_type
;
$orderObj
->
merchant_id
=
$merchant_id
;
$orderObj
->
merchant_id
=
$merchant_id
;
$orderObj
->
store_id
=
$store_id
;
$orderObj
->
store_id
=
$store_id
;
$orderObj
->
is_commission
=
(
$spuid
||
$merchant_id
)
?
1
:
0
;
if
(
$orderObj
->
save
())
{
if
(
$orderObj
->
save
())
{
$order_id
=
$orderObj
->
id
;
$order_id
=
$orderObj
->
id
;
foreach
(
$orderGoods
as
$key
=>
$item
)
{
foreach
(
$orderGoods
as
$key
=>
$item
)
{
...
@@ -158,6 +160,7 @@ public function CreateOrder(Request $request)
...
@@ -158,6 +160,7 @@ public function CreateOrder(Request $request)
$userObj
=
$request
->
user
();
$userObj
=
$request
->
user
();
$user_id
=
$userObj
->
id
;
$user_id
=
$userObj
->
id
;
$merchant_id
=
$userObj
->
merchant_id
;
$merchant_id
=
$userObj
->
merchant_id
;
$spuid
=
$userObj
->
spuid
;
//直推
$catKey
=
$request
->
catKey
??
''
;
//购物车KeyID拼接 5_1,6_2
$catKey
=
$request
->
catKey
??
''
;
//购物车KeyID拼接 5_1,6_2
$delivery_type
=
$request
->
delivery_type
;
// 收货方式 1:代收点 2:送货上门
$delivery_type
=
$request
->
delivery_type
;
// 收货方式 1:代收点 2:送货上门
$store_id
=
$request
->
store_id
??
0
;
//代收点 门店ID
$store_id
=
$request
->
store_id
??
0
;
//代收点 门店ID
...
@@ -238,10 +241,10 @@ public function CreateOrder(Request $request)
...
@@ -238,10 +241,10 @@ public function CreateOrder(Request $request)
$orderObj
->
mobile
=
$phone
;
$orderObj
->
mobile
=
$phone
;
$orderObj
->
goods_amount
=
$total_price
;
$orderObj
->
goods_amount
=
$total_price
;
$orderObj
->
order_amount
=
$total_price
;
$orderObj
->
order_amount
=
$total_price
;
//$orderObj->goods_sn = $goodObj->goods_sn;
$orderObj
->
delivery_type
=
$delivery_type
;
$orderObj
->
delivery_type
=
$delivery_type
;
$orderObj
->
merchant_id
=
$merchant_id
;
$orderObj
->
merchant_id
=
$merchant_id
;
$orderObj
->
store_id
=
$store_id
;
$orderObj
->
store_id
=
$store_id
;
$orderObj
->
is_commission
=
(
$spuid
||
$merchant_id
)
?
1
:
0
;
if
(
$orderObj
->
save
())
{
if
(
$orderObj
->
save
())
{
$order_id
=
$orderObj
->
id
;
$order_id
=
$orderObj
->
id
;
...
@@ -307,7 +310,7 @@ public function pay(Request $request)
...
@@ -307,7 +310,7 @@ public function pay(Request $request)
//付款回调
//付款回调
public
function
payNotify
(
Request
$request
)
public
function
payNotify
(
Request
$request
)
{
{
Log
::
add
(
'--回调结果--'
,
$_POST
);
Log
::
add
(
'--
支付
回调结果--'
,
$_POST
);
$fields
=
$_POST
??
[];
$fields
=
$_POST
??
[];
//$result = file_get_contents('php://input');
//$result = file_get_contents('php://input');
return
$this
->
JsonResponse
((
new
Adapay
())
->
payNotify
(
$fields
));
return
$this
->
JsonResponse
((
new
Adapay
())
->
payNotify
(
$fields
));
...
...
app/Models/Adapay.php
View file @
0bdef142
...
@@ -63,7 +63,8 @@ public function pay($order_title, $order_sn, $order_amount, $openid)
...
@@ -63,7 +63,8 @@ public function pay($order_title, $order_sn, $order_amount, $openid)
public
function
payNotify
(
$params
=
[])
public
function
payNotify
(
$params
=
[])
{
{
$adapay_tools
=
new
\NwVVVS\AdapaySdk\AdapayTools
();
$payment_confirm
=
new
\NwVVVS\AdapaySdk\PaymentConfirm
();
//支付确认
$adapay_tools
=
new
\NwVVVS\AdapaySdk\AdapayTools
();
//验证签名
$post_data
=
json_decode
(
$params
[
'data'
],
1
);
$post_data
=
json_decode
(
$params
[
'data'
],
1
);
$post_data_str
=
json_encode
(
$post_data
,
JSON_UNESCAPED_UNICODE
);
$post_data_str
=
json_encode
(
$post_data
,
JSON_UNESCAPED_UNICODE
);
$post_sign_str
=
isset
(
$params
[
'sign'
])
?
$params
[
'sign'
]
:
''
;
$post_sign_str
=
isset
(
$params
[
'sign'
])
?
$params
[
'sign'
]
:
''
;
...
@@ -75,16 +76,14 @@ public function payNotify($params = [])
...
@@ -75,16 +76,14 @@ public function payNotify($params = [])
return
false
;
return
false
;
}
}
$message
=
$post_data
;
$message
=
$post_data
;
$orderObj
=
OrderInfo
::
where
([
'order_sn'
=>
$message
[
'order_no'
]])
->
first
();
$order_no
=
$message
[
'order_no'
];
$orderObj
=
OrderInfo
::
where
([
'order_sn'
=>
$order_no
])
->
first
();
if
(
!
$orderObj
)
{
if
(
!
$orderObj
)
{
Log
::
add
(
'订单不存在'
,
[
$
message
[
'order_no'
]
]);
Log
::
add
(
'订单不存在'
,
[
$
order_no
]);
return
false
;
return
false
;
}
}
//支付完成后的业务逻辑[result_code] => SUCCESS
//支付完成后通知
if
(
$orderObj
->
pay_status
==
1
)
{
if
(
$message
[
'status'
]
==
"succeeded"
&&
$orderObj
->
pay_status
==
0
)
{
return
true
;
}
if
(
$message
[
'status'
]
==
"succeeded"
)
{
DB
::
beginTransaction
();
DB
::
beginTransaction
();
try
{
try
{
//更新订单
//更新订单
...
@@ -151,9 +150,96 @@ public function payNotify($params = [])
...
@@ -151,9 +150,96 @@ public function payNotify($params = [])
return
false
;
return
false
;
}
}
}
}
//解冻通知
$freeze_stat
=
$message
[
'freeze_stat'
]
??
''
;
if
(
$message
[
'status'
]
==
"succeeded"
&&
$orderObj
->
freeze_stat
==
'FREEZE'
)
{
if
(
$freeze_stat
!=
'UNFREEZE'
)
{
return
false
;
}
//交易记录
$prObj
=
PaymentRecord
::
where
(
'order_sn'
,
$order_no
)
->
first
();
# 支付确认参数设置
$payment_params
=
array
(
"payment_id"
=>
$prObj
->
payment_id
,
"order_no"
=>
'payconfirm_'
.
date
(
"YmdHis"
)
.
rand
(
100000
,
999999
),
"confirm_amt"
=>
$prObj
->
money
,
"description"
=>
""
,
"div_members"
=>
""
//分账参数列表 默认是数组List
);
//分账列表
$payment_params
[
'div_members'
]
=
OrderDivideRecord
::
divide
(
$orderObj
->
id
);
//返回分账参数列表
Log
::
add
(
'发起支付确认'
.
$order_no
,
$payment_params
);
DB
::
beginTransaction
();
try
{
# 发起支付确认创建
$payment_confirm
->
create
(
$payment_params
);
# 对支付确认创建结果进行处理
if
(
$payment_confirm
->
isError
())
{
//失败处理
Log
::
add
(
'支付确认失败'
,
$payment_confirm
->
result
);
$result
=
$payment_confirm
->
result
;
}
else
{
//成功处理
Log
::
add
(
'支付确认成功'
,
$payment_confirm
->
result
);
$result
=
$payment_confirm
->
result
;
if
(
$result
[
'status'
]
==
'succeeded'
)
{
$orderObj
->
freeze_stat
=
'UNFREEZE'
;
$orderObj
->
save
();
}
}
DB
::
commit
();
}
catch
(
\Exception
$e
)
{
Log
::
add
(
'支付确认对象失败'
,
$e
);
DB
::
rollBack
();
return
false
;
}
}
return
true
;
return
true
;
}
}
//创建支付确认
public
function
createPaymentConfirm
(
$payment_params
)
{
$payment
=
new
\NwVVVS\AdapaySdk\PaymentConfirm
();
# 发起支付确认创建
$payment
->
create
(
$payment_params
);
# 对支付确认创建结果进行处理
if
(
$payment
->
isError
())
{
//失败处理
Log
::
add
(
'支付确认返回结果,失败'
,
$payment
->
result
);
echo
"<pre>"
;
print_r
(
$payment
->
result
);
}
else
{
//成功处理
echo
"<pre>"
;
Log
::
add
(
'支付确认返回结果,成功'
,
$payment
->
result
);
print_r
(
$payment
->
result
);
}
}
//查询支付对象列表
public
function
queryList
(
$payment_params
)
{
$payment
=
new
\NwVVVS\AdapaySdk\Payment
();
$payment
->
queryList
(
$payment_params
);
# 对支付结果进行处理
if
(
$payment
->
isError
())
{
//失败处理
echo
"<pre>"
;
print_r
(
$payment
->
result
);
}
else
{
//成功处理
echo
"<pre>"
;
print_r
(
$payment
->
result
);
die
;
}
}
//退款
//退款
public
function
refund
(
$order_sn
,
$refund_no
)
public
function
refund
(
$order_sn
,
$refund_no
)
{
{
...
...
app/Models/HfProvAreaCode.php
0 → 100644
View file @
0bdef142
<?php
namespace
App\Models
;
use
Dcat\Admin\Traits\HasDateTimeFormatter
;
use
Illuminate\Database\Eloquent\Model
;
class
HfProvAreaCode
extends
Model
{
use
HasDateTimeFormatter
;
protected
$table
=
'hf_prov_area_code'
;
}
app/Models/OrderDivideRecord.php
View file @
0bdef142
...
@@ -23,15 +23,26 @@ class OrderDivideRecord extends Model
...
@@ -23,15 +23,26 @@ class OrderDivideRecord extends Model
//收益分配
//收益分配
public
static
function
divide
(
$order_id
)
public
static
function
divide
(
$order_id
)
{
{
$div_members
=
[];
//汇付 分账对象
$orderObj
=
OrderInfo
::
find
(
$order_id
);
$orderObj
=
OrderInfo
::
find
(
$order_id
);
$merchant_id
=
$orderObj
->
merchant_id
;
//绑定的商户
$merchant_id
=
$orderObj
->
merchant_id
;
//绑定的商户
$user_id
=
$orderObj
->
user_id
;
//下单用户ID
$user_id
=
$orderObj
->
user_id
;
//下单用户ID
$userObj
=
User
::
find
(
$user_id
);
$userObj
=
User
::
find
(
$user_id
);
$spuid
=
$userObj
->
spuid
;
//直推分享人
$spuid
=
$userObj
->
spuid
;
//直推分享人
$second_spuid
=
$userObj
->
second_spuid
;
//间推分享人
$second_spuid
=
$userObj
->
second_spuid
;
//间推分享人
$total_amount
=
0
;
//订单商品总价
$commissionPreData
=
[
'first_member_id'
=>
''
,
'first_amount'
=>
0
,
'second_member_id'
=>
''
,
'second_amount'
=>
0
,
'merchant_member_id'
=>
''
,
'merchant_amount'
=>
0
,
];
$ogList
=
OrderGoods
::
where
(
"order_id"
,
$order_id
)
->
get
();
//订单商品
$ogList
=
OrderGoods
::
where
(
"order_id"
,
$order_id
)
->
get
();
//订单商品
foreach
(
$ogList
as
$kk
=>
$item
)
{
foreach
(
$ogList
as
$kk
=>
$item
)
{
$goods_amount
=
$item
->
goods_price
*
$item
->
goods_number
;
$goods_amount
=
$item
->
goods_price
*
$item
->
goods_number
;
$total_amount
+=
$goods_amount
;
//商品信息
//商品信息
$goodObj
=
Good
::
find
(
$item
->
goods_id
);
$goodObj
=
Good
::
find
(
$item
->
goods_id
);
$merchant_commission
=
$goodObj
->
merchant_commission
;
$merchant_commission
=
$goodObj
->
merchant_commission
;
...
@@ -46,6 +57,11 @@ public static function divide($order_id)
...
@@ -46,6 +57,11 @@ public static function divide($order_id)
$spObj
->
balance
+=
$divide_price
;
$spObj
->
balance
+=
$divide_price
;
$spObj
->
save
();
$spObj
->
save
();
self
::
addRecord
(
$item
->
id
,
$order_id
,
$goods_amount
,
$divide_price
,
$first_commission
,
$spuid
,
$user_id
,
1
);
self
::
addRecord
(
$item
->
id
,
$order_id
,
$goods_amount
,
$divide_price
,
$first_commission
,
$spuid
,
$user_id
,
1
);
//汇付参数
if
(
$spObj
->
member_id
)
{
$commissionPreData
[
'first_member_id'
]
=
$spObj
->
member_id
;
$commissionPreData
[
'first_amount'
]
+=
$divide_price
;
}
}
}
//间推佣金
//间推佣金
if
(
$second_spuid
&&
$second_commission
>=
1
&&
$second_commission
<
100
)
{
if
(
$second_spuid
&&
$second_commission
>=
1
&&
$second_commission
<
100
)
{
...
@@ -56,6 +72,11 @@ public static function divide($order_id)
...
@@ -56,6 +72,11 @@ public static function divide($order_id)
$spObj
->
balance
+=
$divide_price
;
$spObj
->
balance
+=
$divide_price
;
$spObj
->
save
();
$spObj
->
save
();
self
::
addRecord
(
$item
->
id
,
$order_id
,
$goods_amount
,
$divide_price
,
$second_commission
,
$second_spuid
,
$user_id
,
2
);
self
::
addRecord
(
$item
->
id
,
$order_id
,
$goods_amount
,
$divide_price
,
$second_commission
,
$second_spuid
,
$user_id
,
2
);
//汇付参数
if
(
$spObj
->
member_id
)
{
$commissionPreData
[
'second_member_id'
]
=
$spObj
->
member_id
;
$commissionPreData
[
'second_amount'
]
+=
$divide_price
;
}
}
}
//商户分佣记录
//商户分佣记录
if
(
$merchant_id
&&
$merchant_commission
>=
1
&&
$merchant_commission
<
100
)
{
if
(
$merchant_id
&&
$merchant_commission
>=
1
&&
$merchant_commission
<
100
)
{
...
@@ -67,9 +88,29 @@ public static function divide($order_id)
...
@@ -67,9 +88,29 @@ public static function divide($order_id)
$merObj
->
save
();
$merObj
->
save
();
//记录
//记录
self
::
addRecord
(
$item
->
id
,
$order_id
,
$goods_amount
,
$divide_price
,
$merchant_commission
,
$merchant_id
,
$user_id
,
3
);
self
::
addRecord
(
$item
->
id
,
$order_id
,
$goods_amount
,
$divide_price
,
$merchant_commission
,
$merchant_id
,
$user_id
,
3
);
//汇付参数
$member_id
=
HfCompanyMember
::
where
(
'merchant_id'
,
$merchant_id
)
->
value
(
'member_id'
);
if
(
$member_id
)
{
$commissionPreData
[
'merchant_member_id'
]
=
$member_id
;
$commissionPreData
[
'merchant_amount'
]
+=
$divide_price
;
}
}
}
}
}
return
true
;
//组合分账参数
if
(
$commissionPreData
[
'first_member_id'
])
{
array_push
(
$div_members
,
[
'member_id'
=>
$commissionPreData
[
'first_member_id'
],
'amount'
=>
$commissionPreData
[
'first_amount'
],
'fee_flag'
=>
'Y'
]);
}
if
(
$commissionPreData
[
'second_member_id'
])
{
array_push
(
$div_members
,
[
'member_id'
=>
$commissionPreData
[
'second_member_id'
],
'amount'
=>
$commissionPreData
[
'second_amount'
],
'fee_flag'
=>
'Y'
]);
}
if
(
$commissionPreData
[
'merchant_member_id'
])
{
array_push
(
$div_members
,
[
'member_id'
=>
$commissionPreData
[
'merchant_member_id'
],
'amount'
=>
$commissionPreData
[
'merchant_amount'
],
'fee_flag'
=>
'Y'
]);
}
//商户本身
$aimeiyuePrice
=
$total_amount
-
$commissionPreData
[
'first_amount'
]
-
$commissionPreData
[
'second_amount'
]
-
$commissionPreData
[
'merchant_amount'
];
array_push
(
$div_members
,
[
'member_id'
=>
0
,
'amount'
=>
$aimeiyuePrice
,
'fee_flag'
=>
'Y'
]);
return
$div_members
;
}
}
public
static
function
addRecord
(
$og_id
,
$order_id
,
$goods_amount
,
$divide_price
,
$commission
,
$um_id
,
$user_id
,
$sh_type
)
public
static
function
addRecord
(
$og_id
,
$order_id
,
$goods_amount
,
$divide_price
,
$commission
,
$um_id
,
$user_id
,
$sh_type
)
...
...
routes/api.php
View file @
0bdef142
...
@@ -35,6 +35,10 @@
...
@@ -35,6 +35,10 @@
Route
::
get
(
'hf-provarea-code'
,
'HfProvAreaCodeController@getList'
);
//汇付 省市编码
Route
::
get
(
'hf-provarea-code'
,
'HfProvAreaCodeController@getList'
);
//汇付 省市编码
Route
::
get
(
'hf-query-list'
,
'HfOrderController@autoQueryList'
);
//汇付 定时查询支付对象列表
Route
::
post
(
'hf-payment-confirm'
,
'HfOrderController@paymentConfirm'
);
//汇付 手动创建支付确认
//Route::post('mobile-login', 'LoginController@mobilelogin'); //验证码登录
//Route::post('mobile-login', 'LoginController@mobilelogin'); //验证码登录
Route
::
post
(
'account-login'
,
'StoreAdminUsersController@login'
);
//账号密码登录
Route
::
post
(
'account-login'
,
'StoreAdminUsersController@login'
);
//账号密码登录
...
@@ -170,6 +174,8 @@
...
@@ -170,6 +174,8 @@
Route
::
post
(
'add-comment'
,
'CommentController@add'
);
//去评价
Route
::
post
(
'add-comment'
,
'CommentController@add'
);
//去评价
/*------------------------------商户端------------------------------------*/
Route
::
get
(
'commission-list'
,
'OrderDivideRecordController@getList'
);
//直推、间推明细
Route
::
get
(
'commission-list'
,
'OrderDivideRecordController@getList'
);
//直推、间推明细
Route
::
get
(
'income-list'
,
'IncomeController@getList'
);
//用户提现明细
Route
::
get
(
'income-list'
,
'IncomeController@getList'
);
//用户提现明细
...
@@ -178,18 +184,24 @@
...
@@ -178,18 +184,24 @@
Route
::
get
(
'my-member'
,
'MerchantController@getUserList'
);
//商户端-我的用户
Route
::
get
(
'my-member'
,
'MerchantController@getUserList'
);
//商户端-我的用户
Route
::
post
(
'my-member-orderlist'
,
'MerchantController@getOrderList'
);
//商户端-我的用户(查看订单)
Route
::
post
(
'scan-code-detail'
,
'OrderController@scanCodeDetail'
);
//扫码核销展示详情
Route
::
post
(
'scan-code-detail'
,
'OrderController@scanCodeDetail'
);
//扫码核销展示详情
Route
::
post
(
'scan-code-verifi'
,
'OrderController@scanCodeVerifi'
);
//扫码核销确认
Route
::
post
(
'scan-code-verifi'
,
'OrderController@scanCodeVerifi'
);
//扫码核销确认
Route
::
get
(
'merchant-order-collect'
,
'OrderController@orderCollect'
);
//商户端首页统计
Route
::
get
(
'merchant-order-collect'
,
'OrderController@orderCollect'
);
//商户端首页统计
/*------------------------------汇付天下------------------------------------*/
Route
::
post
(
'hf-settle-account-delete'
,
'HfSettleAccountController@deleteAccount'
);
//汇付 删除结算账户
Route
::
post
(
'hf-settle-account-delete'
,
'HfSettleAccountController@deleteAccount'
);
//汇付 删除结算账户
Route
::
post
(
'hf-settle-account-member'
,
'HfSettleAccountController@createMemberAccount'
);
//汇付 创建普通用户结算账户
Route
::
post
(
'hf-settle-account-member'
,
'HfSettleAccountController@createMemberAccount'
);
//汇付 创建普通用户结算账户
Route
::
post
(
'hf-settle-account-company'
,
'HfSettleAccountController@createCompanyAccount'
);
//汇付 创建企业用户结算账户
Route
::
post
(
'hf-settle-account-company'
,
'HfSettleAccountController@createCompanyAccount'
);
//汇付 创建企业用户结算账户
Route
::
get
(
'hf-mycard'
,
'HfSettleAccountController@myCard'
);
//查询已绑定结算账户
Route
::
post
(
'hf-settle-account-query'
,
'HfSettleAccountController@queryAccount'
);
//汇付 查询用户结算账户
Route
::
post
(
'hf-settle-account-query'
,
'HfSettleAccountController@queryAccount'
);
//汇付 查询用户结算账户
});
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment