工行支付打印取消
This commit is contained in:
parent
f461f04085
commit
fe3dcb4cd9
@ -3,6 +3,7 @@
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\common\basics\Api;
|
||||
use app\common\server\JsonServer;
|
||||
use think\facade\Db;
|
||||
class Gt extends Api
|
||||
{
|
||||
@ -29,20 +30,17 @@ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlu5coHWBbtrz8DyX0VbPWiJZlAsofwZ99pZq
|
||||
$result = $this->curl_post($url,$b);
|
||||
var_dump($result);
|
||||
}
|
||||
public function wxPay($money='1'){
|
||||
$user_id = $this->user_id;
|
||||
public function wxPay($money='1',$local_goods_id=0,$lstore_id=0){
|
||||
// $user_id = $this->user_id;
|
||||
$user_id = 979;
|
||||
$user = Db::name("user_auth")->where("user_id",$user_id)->find();
|
||||
// $publicKey = "-----BEGIN PUBLIC KEY-----
|
||||
//MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwRUsPpbQPhBWrxFhG00k9VBgnHc7dCZyTQYIZ0efDEZOPHtDfbldfBDlfZglvfUsVuxea4NffzkbCm9pakoQilSy7hioiF8sxhUYxpwFIbx15KaQsjpeCtu5yOr3bKb5qZNzf+QtL70EDPfdVdZ5mBlO7CMa01W7CtqkxBlc4iSfVeavFK7rzOJpTAoamHdcdjtffYlNAsg2q3I1SDIUkiasVCo+BtNgzLY+7y1mSt9SbXO5nCMBT9DQVqsccBHu4SYS6kExISfLDjfeAldgtNtMuuyESiyp53EEk/Xe8JzrrjnHloHB63H47TxElsApAEmz0dabJyMBqT8Ow/m5OQIDAQAB
|
||||
//-----END PUBLIC KEY-----";
|
||||
|
||||
$out = "dlh".time().$user_id;
|
||||
$user_id = 979;
|
||||
$data = [
|
||||
'agetId'=>"FWH000025501",
|
||||
'custId'=>"60000008228471",
|
||||
'orderNo'=>"dlh".time().$user_id,
|
||||
'txamt'=>$money,
|
||||
'orderNo'=>$out,
|
||||
'txamt'=>$money*100,
|
||||
'openid'=>$user['openid'],
|
||||
'payWay'=>"1",
|
||||
'ip'=>$_SERVER['REMOTE_ADDR'],
|
||||
@ -51,17 +49,68 @@ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlu5coHWBbtrz8DyX0VbPWiJZlAsofwZ99pZq
|
||||
'wxAppid'=>'wx586d77b9edb0636d',
|
||||
'traType'=>'8'
|
||||
];
|
||||
$da['orderNo'] = $out;
|
||||
$da['txamt'] = $money*100;
|
||||
$da['user_id'] = $user_id;
|
||||
$da['local_goods_id'] = $local_goods_id;
|
||||
$da['lstore_id'] = $lstore_id;
|
||||
$da['dtime'] = date("Y-m-d H:i:s");
|
||||
Db::name("gt_pay")->save($da);
|
||||
$d =$this->ASCII($data);
|
||||
$data['sign'] = $this->sign($d,$this->publicKey);
|
||||
// print_r("<pre>");
|
||||
// var_dump($data);
|
||||
$b = json_encode($data,true);
|
||||
// var_dump($b);
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
|
||||
$result = $this->curl_post($url,$b);
|
||||
$r['nonceStr'] = $result['data']['jsapiNoncestr'];
|
||||
$r['package'] = $result['data']['jsapiPackage'];
|
||||
$r['signType'] = $result['data']['jsapiSignType'];
|
||||
$r['timeStamp'] = $result['data']['jsapiTimestamp'];
|
||||
$r['paySign'] = $result['data']['jsapiPaySign'];
|
||||
return JsonServer::success('开始支付',$r);
|
||||
// var_dump($result);
|
||||
}
|
||||
public function account(){
|
||||
|
||||
$ΘACC_DETAIL=array(
|
||||
array(
|
||||
"ACC_CUST_ID"=>"60000008228471",
|
||||
"ACC_DATE"=>"0.2"
|
||||
),
|
||||
array(
|
||||
"ACC_CUST_ID"=>"60000008435142",
|
||||
"ACC_DATE"=>"0.3"
|
||||
),
|
||||
array(
|
||||
"ACC_CUST_ID"=>"60000008435087",
|
||||
"ACC_DATE"=>"0.5"
|
||||
));
|
||||
$ΘACC_DETAIL = json_encode($ΘACC_DETAIL,true);
|
||||
$d['ACC_DETAIL'] = $ΘACC_DETAIL;
|
||||
$ACC_DETAIL = json_encode($d,true);
|
||||
$data = [
|
||||
'agetId'=>"FWH000025501",
|
||||
'custId'=>"60000008228471",
|
||||
'orderNo'=>"dlh1732801945979",
|
||||
'areaId'=>"20241128184516",
|
||||
'accModel'=>"1",
|
||||
'accWay'=>"1",
|
||||
'orderAccDetail'=>$ACC_DETAIL,
|
||||
'timeStamp'=>time(),
|
||||
'version'=>"1.0.0"
|
||||
];
|
||||
$d =$this->ASCII($data);
|
||||
$data['sign'] = $this->sign($d,$this->publicKey);
|
||||
print_r("<pre>");
|
||||
var_dump($data);
|
||||
$b = json_encode($data,true);
|
||||
var_dump($b);
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/account";
|
||||
$result = $this->curl_post($url,$b);
|
||||
var_dump($result);
|
||||
}
|
||||
|
||||
// 查询mcc
|
||||
public function checkMcc(){
|
||||
$data = [
|
||||
|
||||
395
app/api/controller/Gtpay.php
Normal file
395
app/api/controller/Gtpay.php
Normal file
@ -0,0 +1,395 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\common\basics\Api;
|
||||
use app\common\logic\Billions;
|
||||
use app\common\logic\Earnings;
|
||||
use app\common\model\AccountLog;
|
||||
use app\common\model\localstore\LocalGoodsOrder;
|
||||
use app\common\server\JsonServer;
|
||||
use think\facade\Db;
|
||||
class Gtpay extends Api
|
||||
{
|
||||
public $like_not_need_login = ['accountResult','checkOrder','account','messageSend','custom','wxPay','checkMcc','checkSecondMcc','anxinsignPerson','anxinsigncompany'];
|
||||
private $agetId = "FWH000025501";
|
||||
private $custId = "60000008228471";
|
||||
private $wxAppid = "wx586d77b9edb0636d";
|
||||
private $areaId = "20241128184516";//商圈号
|
||||
private $publicKey = "-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlu5coHWBbtrz8DyX0VbPWiJZlAsofwZ99pZq1CNZhx2bo66BtcHLWQ5LhpXxz7/dRpqUaek1HIK2z03sPBIBQHoTWz74fPsbiKH++d7fX8389XWuEyeL8BuBIUzXDYYmxdZKuOZ9pxjYpVqXkfFRq35TAxKZnm3Nj7ReNliTyY1/kp/vgvgJPaF+tWrCorWBiHvqDLd2teD8yRICRbFtZfd+DNdAYNPhJ8IHAB2Tazc8qG/IOhaP9bAZ74xmVXnXmHQRa+6JLJqIh7k2OrUO0JdcU0HiSiCidQUqdGZf+U088lz8pi95t+AvV6mUFtWyEQZHmv/xrVxj9oVdcbwjFQIDAQAB
|
||||
-----END PUBLIC KEY-----";
|
||||
public function wxPay($user_id,$money='1',$local_goods_id=0,$lid=0){
|
||||
// $user_id = $this->user_id;var_dump($user_id);
|
||||
// $user_id = 979;
|
||||
$user = Db::name("user_auth")->where("user_id",$user_id)->find();
|
||||
$out = "dlh".time().$user_id;
|
||||
$data = [
|
||||
'agetId'=>$this->agetId,
|
||||
'custId'=>$this->custId,
|
||||
'orderNo'=>$out,
|
||||
'txamt'=>$money*100,
|
||||
'openid'=>$user['openid'],
|
||||
'payWay'=>"1",
|
||||
'ip'=>$_SERVER['REMOTE_ADDR'],
|
||||
'timeStamp'=>time(),
|
||||
'version'=>"1.0.0",
|
||||
'wxAppid'=>$this->wxAppid,
|
||||
'traType'=>'8'
|
||||
];
|
||||
$da['orderNo'] = $out;
|
||||
$da['txamt'] = $money*100;
|
||||
$da['user_id'] = $user_id;
|
||||
$da['local_goods_id'] = $local_goods_id;
|
||||
$da['lstore_id'] = $lid;
|
||||
$da['dtime'] = date("Y-m-d H:i:s");
|
||||
$r['id'] = Db::name("gt_pay")->insertGetId($da);
|
||||
$d =$this->ASCII($data);
|
||||
$data['sign'] = $this->sign($d,$this->publicKey);
|
||||
// print_r("<pre>");
|
||||
// var_dump($data);
|
||||
$b = json_encode($data,true);
|
||||
// var_dump($b);
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
|
||||
$result = $this->curl_post($url,$b);
|
||||
$r['nonceStr'] = $result['data']['jsapiNoncestr'];
|
||||
$r['package'] = $result['data']['jsapiPackage'];
|
||||
$r['signType'] = $result['data']['jsapiSignType'];
|
||||
$r['timeStamp'] = $result['data']['jsapiTimestamp'];
|
||||
$r['paySign'] = $result['data']['jsapiPaySign'];
|
||||
return JsonServer::success('开始支付',$r);
|
||||
}
|
||||
public function checkOrder($post){
|
||||
$user_id = $this->user_id;
|
||||
$gtpay_msg = Db::name("gt_pay")->where("id",$post['id'])->find();
|
||||
$data = [
|
||||
'agetId'=>$this->agetId,
|
||||
'custId'=>$this->custId,
|
||||
'orderNo'=>$gtpay_msg['orderNo'],
|
||||
'orderTime'=>date("Ymd",strtotime($gtpay_msg['dtime'])),
|
||||
'timeStamp'=>time(),
|
||||
'version'=>"1.0.0"
|
||||
];
|
||||
// print_r("<pre>");
|
||||
// var_dump($data);
|
||||
$d =$this->ASCII($data);
|
||||
$data['sign'] = $this->sign($d,$this->publicKey);
|
||||
// print_r("<pre>");
|
||||
// var_dump($data);
|
||||
$b = json_encode($data,true);
|
||||
// var_dump($b);
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/orderQuery";
|
||||
$result = $this->curl_post($url,$b);
|
||||
// var_dump($result);
|
||||
return $this->account($result,$post,$user_id,$gtpay_msg);
|
||||
}
|
||||
public function account($result,$post,$user_id,$gtpay_msg){
|
||||
// var_dump($result);
|
||||
$sidy = 0.7;
|
||||
$sidy1 = 0.03;
|
||||
$sidy2 = 0.05;
|
||||
$sidy3 = 0.22;
|
||||
if(isset($post['spec_item_id'])){
|
||||
$sku_num_msg = Db::name("local_store_goods_item")
|
||||
->where("id",$post['spec_item_id'])
|
||||
->find();
|
||||
if($sku_num_msg!=null){
|
||||
$data['goods_id'] = $sku_num_msg['goods_id'];
|
||||
$local_goods_msg = Db::name("local_store_goods")
|
||||
->where("id",$sku_num_msg['goods_id'])
|
||||
->find();
|
||||
if($local_goods_msg['subsidy_id'] == 0){
|
||||
$sidy = 0.7;
|
||||
$sidy1 = 0.03;
|
||||
$sidy2 = 0.05;
|
||||
$sidy3 = 0.22;
|
||||
}else{
|
||||
$subsidy = Db::name("goods_subsidy")
|
||||
->where("id",$local_goods_msg['subsidy_id'])
|
||||
->find();
|
||||
$sidy = round($subsidy['profit']/100,2);
|
||||
$sidy3 = round((100-$subsidy['profit']-8)/100,2);
|
||||
}
|
||||
}
|
||||
$data['sku_id'] = $post['spec_item_id'];
|
||||
}
|
||||
if(isset($post['lsg_order_id'])){
|
||||
$data['lsg_order_id'] = $post['lsg_order_id'];
|
||||
if(isset($post['post_station_time'])){
|
||||
$year = date("Y");
|
||||
$post_station_time = $year.'-'.$post['post_station_time'];
|
||||
$post_station_time = strtotime($post_station_time);
|
||||
LocalGoodsOrder::where('lsg_order_id',$post['lsg_order_id'])->update(
|
||||
[
|
||||
'post_station_id'=>$post['post_station_id'],
|
||||
'post_station_time'=>$post_station_time
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
if(isset($post['goods_num'])){
|
||||
$data['goods_num'] = $post['goods_num'];
|
||||
}
|
||||
$data['order_sn'] = $gtpay_msg['orderNo'];
|
||||
$data['order_source'] = 1;
|
||||
$data['pay_way'] = 1;
|
||||
$data['pay_status'] = 0;
|
||||
$data['local_id'] = $post['lid'];
|
||||
$data['user_id'] = $user_id;
|
||||
$data['order_amount'] = round($gtpay_msg['txamt']/100,2);
|
||||
$data['pay_type'] = 1;
|
||||
$data['gt_orderno'] = $result['data']['orderNo'];
|
||||
$data['create_time'] = date("Y-m-d H:i:s");
|
||||
$r = Db::name("local_pay")->save($data);
|
||||
|
||||
$company = Db::name("local_store")->where("lstore_id",$post['lid'])->where("is_delete",0)->find();
|
||||
$dt['lstore_id'] = $post['lid'];
|
||||
$dt['payment_type'] = $company['bankType'];
|
||||
$dt['total_amount'] = round($gtpay_msg['txamt']/100,2);
|
||||
$dt['account_name'] = $company['shopName'];
|
||||
$dt['bank_name'] = $company['bankName'];
|
||||
$dt['bank_card'] = $company['bankCard'];
|
||||
$dt['large_number'] = $company['largeNumber'];
|
||||
$dt['separate_account'] = round($gtpay_msg['txamt']/100*$sidy,2);
|
||||
$dt2['separate_account'] = round($gtpay_msg['txamt']/100*$sidy3,2);
|
||||
$dt3['separate_account'] = round($gtpay_msg['txamt']/100*$sidy1,2);
|
||||
if($post['lid'] == 138){
|
||||
$dt['separate_account'] = round($gtpay_msg['txamt']/100*0.72,2);
|
||||
$dt2['separate_account'] = round($gtpay_msg['txamt']/100*0.20,2);
|
||||
}
|
||||
if($post['lid'] == 140){
|
||||
$dt['separate_account'] = round($gtpay_msg['txamt']/100*0.76,2);
|
||||
$dt2['separate_account'] = round($gtpay_msg['txamt']/100*0.22,2);
|
||||
$dt3['separate_account'] = 0;
|
||||
}
|
||||
$dt['create_time'] = date("Y-m-d H:i:s");
|
||||
$dt['user_id'] = $user_id;
|
||||
$dt['order_no'] = $gtpay_msg['orderNo'];
|
||||
$dt['pay_shop_type'] = 1;
|
||||
if( isset($post['remark'])){
|
||||
$dt['remark'] = $post['remark'];
|
||||
}
|
||||
$r = Db::name("local_store_order")->save($dt);
|
||||
// 基本户 5%
|
||||
$dt1['lstore_id'] = $post['lid'];
|
||||
$dt1['payment_type'] = 1;
|
||||
$dt1['account_name'] = "东龙汇";
|
||||
$dt1['bank_name'] = "中国工商银行";
|
||||
$dt1['bank_card'] = "1204068809100138961";
|
||||
$dt1['large_number'] = "102335006882";
|
||||
$dt1['separate_account'] = round($gtpay_msg['txamt']/100*$sidy2,2);
|
||||
$dt1['create_time'] = date("Y-m-d H:i:s");
|
||||
$dt1['user_id'] = $user_id;
|
||||
$dt1['local_our_company'] = 1;
|
||||
$dt1['order_no'] = $gtpay_msg['orderNo'];
|
||||
$r1 = Db::name("local_store_order")->save($dt1);
|
||||
// 22% 一般户
|
||||
$dt2['lstore_id'] = $post['lid'];
|
||||
$dt2['payment_type'] = 1;
|
||||
$dt2['account_name'] = "东龙汇";
|
||||
$dt2['bank_name'] = "中国工商银行";
|
||||
$dt2['bank_card'] = "1204064019200152507";
|
||||
$dt2['large_number'] = "102335006405";
|
||||
|
||||
$dt2['create_time'] = date("Y-m-d H:i:s");
|
||||
$dt2['user_id'] = $user_id;
|
||||
$dt2['local_our_company'] = 2;
|
||||
$dt2['order_no'] = $gtpay_msg['orderNo'];
|
||||
$r2 = Db::name("local_store_order")->save($dt2);
|
||||
// 10% 一般户
|
||||
$dt3['lstore_id'] = $post['lid'];
|
||||
$dt3['payment_type'] = 1;
|
||||
$dt3['account_name'] = "东龙汇";
|
||||
$dt3['bank_name'] = "中国工商银行";
|
||||
$dt3['bank_card'] = "1204064419000115357";
|
||||
// $dt3['bank_card'] = "1204068809100138961";
|
||||
// $dt3['large_number'] = "102335006882";
|
||||
$dt3['large_number'] = "102335006448";
|
||||
// $dt3['separate_account'] = round($post['money']*0.06,2);
|
||||
$dt3['create_time'] = date("Y-m-d H:i:s");
|
||||
$dt3['user_id'] = $user_id;
|
||||
$dt3['local_our_company'] = 3;
|
||||
$dt3['order_no'] = $gtpay_msg['orderNo'];
|
||||
$r3 = Db::name("local_store_order")->save($dt3);
|
||||
|
||||
$arr=array("ACC_DETAIL"=>array(
|
||||
array(
|
||||
"ACC_CUST_ID"=>$company['acc_cust_id'],
|
||||
"ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy,2)
|
||||
),
|
||||
// 基本户
|
||||
array(
|
||||
"ACC_CUST_ID"=>"60000008228471",
|
||||
"ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy2,2)
|
||||
),
|
||||
// 一般户2507
|
||||
array(
|
||||
"ACC_CUST_ID"=>"60000008435142",
|
||||
"ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy3,2)
|
||||
),
|
||||
//一般户5357
|
||||
array(
|
||||
"ACC_CUST_ID"=>"60000008435087",
|
||||
"ACC_DATE"=>round($gtpay_msg['txamt']/100*$sidy2,2)
|
||||
)));
|
||||
$arr = json_encode($arr,true);
|
||||
$data = [
|
||||
'agetId'=>$this->agetId,
|
||||
'custId'=>$this->custId,
|
||||
'orderNo'=>$result['data']['orderNo'],
|
||||
'areaId'=>$this->areaId,
|
||||
'accModel'=>"1",
|
||||
'accWay'=>"1",
|
||||
'orderAccDetail'=>$arr,
|
||||
'timeStamp'=>time(),
|
||||
'version'=>"1.0.0",
|
||||
'remark'=>'订单分账',
|
||||
'accTxamt'=>$gtpay_msg['txamt']
|
||||
];
|
||||
$d =$this->ASCII($data);
|
||||
$data['sign'] = $this->sign($d,$this->publicKey);
|
||||
// print_r("<pre>");
|
||||
// var_dump($data);
|
||||
$b = json_encode($data,true);
|
||||
// var_dump($b);
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/account";
|
||||
$res = $this->curl_post($url,$b);
|
||||
if($res['code'] == "000000"){
|
||||
$dat['state'] = 1;
|
||||
$dat['taskCreateDate'] = $res['data']['taskCreateDate'];
|
||||
$dat['taskId'] = $res['data']['taskId'];
|
||||
Db::name("gt_pay")->where("id",$gtpay_msg['id'])->update(['state'=>1]);
|
||||
Db::name("local_store_order")->where("order_no",$gtpay_msg['orderNo'])->update(['state'=>1]);
|
||||
Db::name("local_pay")->where("order_sn",$gtpay_msg['orderNo'])->update(['pay_status'=>1]);
|
||||
if(isset($post['lsg_order_id'])){
|
||||
LocalGoodsOrder::where('lsg_order_id',$post['lsg_order_id'])->update(
|
||||
[
|
||||
'state'=>1
|
||||
]
|
||||
);
|
||||
}
|
||||
$user = Db::name("user")->where("id",$user_id)->find();
|
||||
$distribution = Db::name("distribution")->where("user_id",$user_id)->find();
|
||||
// 参与消费返补
|
||||
$billions = new Billions();
|
||||
$order['order_amount'] = round($gtpay_msg['txamt']/100,2);
|
||||
$order['id'] = $gtpay_msg['id'];
|
||||
$order['order_sn'] = $gtpay_msg['orderNo'];
|
||||
$order['type'] = 4;
|
||||
$type = "local_pay";
|
||||
$billions_result = $billions->billions($order,$user['id'],$type);
|
||||
return JsonServer::success('分账成功');
|
||||
}
|
||||
}
|
||||
public function accountResult(){
|
||||
$data = [
|
||||
'agetId'=>"FWH000025501",
|
||||
'custId'=>"60000008228471",
|
||||
'orderNo'=>"20241129TT2lg6ln",
|
||||
'areaId'=>"20241128184516",
|
||||
'taskCreateDate'=>"20241129",
|
||||
'taskId'=>"1099295",
|
||||
'timeStamp'=>time(),
|
||||
'version'=>"1.0.0"
|
||||
];
|
||||
$d =$this->ASCII($data);
|
||||
$data['sign'] = $this->sign($d,$this->publicKey);
|
||||
print_r("<pre>");
|
||||
var_dump($data);
|
||||
$b = json_encode($data,true);
|
||||
var_dump($b);
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/accountResult";
|
||||
$result = $this->curl_post($url,$b);
|
||||
var_dump($result);
|
||||
}
|
||||
|
||||
// 异步支付回调
|
||||
public function payNotify(){
|
||||
|
||||
}
|
||||
//异步提现回调
|
||||
public function payWithdrawal(){
|
||||
|
||||
}
|
||||
//异步进件
|
||||
public function inComing(){
|
||||
|
||||
}
|
||||
function ASCII($params=array()){
|
||||
ksort($params);
|
||||
reset($params);
|
||||
$str = "";
|
||||
$t = array();
|
||||
foreach($params as $key=>$value){
|
||||
$t[] = $key."=".$value;
|
||||
}
|
||||
|
||||
$str = implode("&",$t);
|
||||
// $str = http_build_query($params,'','&');
|
||||
return $str;
|
||||
}
|
||||
public function sign($param,$key_pem)
|
||||
{
|
||||
$sha256 = hash("sha256", $param);
|
||||
$privateKey = openssl_pkey_get_public($key_pem); //检测是否公钥
|
||||
openssl_public_encrypt($sha256, $sign, $privateKey); //公钥加密
|
||||
$sign = base64_encode($sign);
|
||||
return $sign;
|
||||
}
|
||||
private function curl_post($url,$postdata){
|
||||
$curl = curl_init(); // 启动一个CURL会话
|
||||
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
||||
'Expect:'
|
||||
)); // 解决数据包大不能提交
|
||||
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
|
||||
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
|
||||
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
|
||||
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); // Post提交的数据包
|
||||
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循
|
||||
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
|
||||
// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
|
||||
$tmpInfo = curl_exec($curl); // 执行操作
|
||||
if (curl_errno($curl)) {
|
||||
echo 'Errno' . curl_error($curl);
|
||||
}
|
||||
curl_close($curl); // 关键CURL会话
|
||||
$tmpInfo=json_decode($tmpInfo,true);
|
||||
return $tmpInfo;
|
||||
}
|
||||
private function curl_get($url) {
|
||||
//初使化curl
|
||||
$curl = curl_init();
|
||||
//请求的url,由形参传入
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
||||
'Expect:'
|
||||
)); // 解决数据包大不能提交
|
||||
//将得到的数据返回
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
//不处理头信息
|
||||
curl_setopt($curl, CURLOPT_HEADER, 0);
|
||||
//连接超过10秒超时
|
||||
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
|
||||
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
|
||||
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
|
||||
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
|
||||
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
|
||||
// curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
|
||||
//执行curl
|
||||
$output = curl_exec($curl);
|
||||
if (curl_errno($curl)) {
|
||||
echo 'Errno' . curl_error($curl);
|
||||
}
|
||||
//关闭资源
|
||||
curl_close($curl);
|
||||
//返回内容
|
||||
$tmpInfo=json_decode($output,true);
|
||||
return $tmpInfo;
|
||||
}
|
||||
}
|
||||
@ -5,10 +5,11 @@ require_once ROOT_PATH . "/../vendor/hf/BsPayDemo/loader.php";
|
||||
require_once ROOT_PATH . "/../vendor/hf/BsPaySdk/init.php";
|
||||
use app\common\basics\Api;
|
||||
use BsPaySdk\core\BsPay;
|
||||
|
||||
use BsPaySdk\config\MerConfig;
|
||||
|
||||
class Huifu extends Api
|
||||
{
|
||||
|
||||
public function payTest()
|
||||
{
|
||||
$config = new BsPay();
|
||||
@ -60,37 +61,62 @@ class Huifu extends Api
|
||||
}
|
||||
}
|
||||
|
||||
public function test(){
|
||||
public function test($user_id=1){
|
||||
$out = "dlh".time().$user_id;
|
||||
$data = [
|
||||
'agetId'=>"FWH000025501",
|
||||
'custId'=>"60000008228471",
|
||||
'orderNo'=>"dlh".time().$user_id,
|
||||
'txamt'=>$money,
|
||||
'openid'=>$user['openid'],
|
||||
'payWay'=>"1",
|
||||
'ip'=>$_SERVER['REMOTE_ADDR'],
|
||||
'timeStamp'=>time(),
|
||||
'version'=>"1.0.0",
|
||||
'wxAppid'=>'wx586d77b9edb0636d',
|
||||
'traType'=>'8'
|
||||
"sys_id"=>"6666000156739560",
|
||||
"product_id"=>"PAYUN",
|
||||
"data"=>array(
|
||||
"req_date"=>date("Y-m-d"),
|
||||
"req_seq_id"=>$out,
|
||||
"huifu_id"=>"6666000156739560",
|
||||
"goods_desc"=>"测试商品",
|
||||
"trade_type"=>"T_MINIAPP",
|
||||
"trans_amt"=>"1.00"
|
||||
),
|
||||
"wx_data"=>array(
|
||||
"sub_appid"=>"wx586d77b9edb0636d",
|
||||
"sub_openid"=>"ouOMm41xnIKqoZ66ygwJa-qJQpgw"
|
||||
|
||||
)
|
||||
];
|
||||
$d =$this->ASCII($data);
|
||||
$data['sign'] = $this->sign($d,$this->publicKey);
|
||||
$merConfig = new MerConfig();
|
||||
$data['sign'] = $this->sign($data,$merConfig->rsa_huifu_public_key);
|
||||
print_r("<pre>");
|
||||
var_dump($data);
|
||||
$b = json_encode($data,true);
|
||||
var_dump($b);
|
||||
$url = "https://yyfsvxm.postar.cn/yyfsevr/order/pay";
|
||||
$result = $this->curl_post($url,$b);
|
||||
$bspay = new BsPay();
|
||||
$result = $bspay->post("v2.trade.payment.jspay", $paramsInfo, '', 'default');
|
||||
if (!$result || $result->isError()) { //失败处理
|
||||
var_dump($result->getErrorInfo());
|
||||
} else { //成功处理
|
||||
var_dump($result);
|
||||
}
|
||||
var_dump($result);
|
||||
}
|
||||
public function sign($param,$key_pem)
|
||||
{
|
||||
$sha256 = hash("sha256", $param);
|
||||
$privateKey = openssl_pkey_get_public($key_pem); //检测是否公钥
|
||||
openssl_public_encrypt($sha256, $sign, $privateKey); //公钥加密
|
||||
$sign = base64_encode($sign);
|
||||
return $sign;
|
||||
}
|
||||
function ASCII($params=array()){
|
||||
ksort($params);
|
||||
reset($params);
|
||||
// ksort($params);
|
||||
// reset($params);
|
||||
$str = "";
|
||||
$t = array();
|
||||
foreach($params as $key=>$value){
|
||||
$t[] = $key."=".$value;
|
||||
if(is_array($value)){
|
||||
$b = json_encode($value,true);
|
||||
$t[] = $key."=".$b;
|
||||
}else{
|
||||
$t[] = $key."=".$value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$str = implode("&",$t);
|
||||
|
||||
@ -28,7 +28,28 @@ class Earnings
|
||||
]);
|
||||
return $result;
|
||||
}
|
||||
|
||||
// 推广店铺
|
||||
public function userEarningsShop($money,$first_leader,$type_msg){
|
||||
User::where('id', $first_leader)
|
||||
->inc('earnings', $money)->update();
|
||||
$earnings_buy = AccountLog::where('user_id', $first_leader)
|
||||
->order("create_time desc")
|
||||
->limit(1)
|
||||
->value('left_amount');
|
||||
$sn = createSn('account_log', 'log_sn', '', 4);
|
||||
$result = AccountLog::create([
|
||||
'log_sn' => $sn,
|
||||
'user_id' => $first_leader,
|
||||
'source_type' => $type_msg, //todo 改为充值类型
|
||||
'source_id' => 0, //todo 改为充值订单主键
|
||||
'source_sn' => 0, // todo 改为充值订单编号
|
||||
'change_amount' => $money,
|
||||
'left_amount' => $earnings_buy + $money,
|
||||
'change_type' => 1,
|
||||
'remark' => '分销推广店铺佣金增加'
|
||||
]);
|
||||
return $result;
|
||||
}
|
||||
//推广会员无极公司佣金
|
||||
public function userElectrodelessEarnings($money,$divide_role_user_id,$type_msg){
|
||||
User::where('id', $divide_role_user_id)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user