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
6 months ago
by
lizhilin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新
parent
c4754a7a
Show 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'
]]);
...
...
This diff is collapsed.
Click to expand it.
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
();
}
}
This diff is collapsed.
Click to expand it.
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'
);
//汇付天下-企业用户
...
...
This diff is collapsed.
Click to expand it.
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--'
;
}
}
}
This diff is collapsed.
Click to expand it.
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
)
{}
...
...
This diff is collapsed.
Click to expand it.
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
);
}
}
}
This diff is collapsed.
Click to expand it.
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
));
...
...
This diff is collapsed.
Click to expand it.
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
)
{
{
...
...
This diff is collapsed.
Click to expand it.
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'
;
}
This diff is collapsed.
Click to expand it.
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
)
...
...
This diff is collapsed.
Click to expand it.
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'
);
//汇付 查询用户结算账户
});
});
...
...
This diff is collapsed.
Click to expand it.
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