dlh_test_server/app/api/controller/Huifu.php

100 lines
3.7 KiB
PHP
Raw Normal View History

2024-11-04 15:26:37 +08:00
<?php
namespace app\api\controller;
2024-11-15 14:37:44 +08:00
require_once ROOT_PATH . "/../vendor/hf/BsPayDemo/loader.php";
require_once ROOT_PATH . "/../vendor/hf/BsPaySdk/init.php";
2024-11-04 15:26:37 +08:00
use app\common\basics\Api;
use BsPaySdk\core\BsPay;
2024-11-04 16:05:10 +08:00
class Huifu extends Api
{
public function payTest()
{
$config = new BsPay();
$merConfig = $config->getConfig();
// 2.组装请求参数
2024-11-04 15:26:37 +08:00
$paramsInfo = array();
2024-11-04 16:05:10 +08:00
// 请求日期
2024-11-04 15:26:37 +08:00
$paramsInfo["req_date"] = "20241101";
2024-11-04 16:05:10 +08:00
// 请求流水号
2024-11-04 15:26:37 +08:00
$paramsInfo["req_seq_id"] = "rQ20241101153502883338";
2024-11-04 16:05:10 +08:00
// 商户号
2024-11-04 15:26:37 +08:00
$paramsInfo["huifu_id"] = "6666000109133323";
2024-11-04 16:05:10 +08:00
// 商品描述
2024-11-04 15:26:37 +08:00
$paramsInfo["goods_desc"] = "测试商品";
2024-11-04 16:05:10 +08:00
// 交易类型
2024-11-04 15:26:37 +08:00
$paramsInfo["trade_type"] = "T_MINIAPP";
2024-11-04 16:05:10 +08:00
// 交易金额
2024-11-04 15:26:37 +08:00
$paramsInfo["trans_amt"] = "0.10";
2024-11-04 16:05:10 +08:00
// 交易有效期
2024-11-04 15:26:37 +08:00
$paramsInfo["time_expire"] = "20250518235959";
2024-11-04 16:05:10 +08:00
// 微信参数集合
2024-11-04 15:26:37 +08:00
$paramsInfo["wx_data"] = "{\"sub_appid\":\"wxdfe9a5d141f96685\",\"sub_openid\":\"o8jhotzittQSetZ-N0Yj4Hz91Rqc\",\"detail\":{\"cost_price\":\"43.00\",\"receipt_id\":\"20220628132043853798\",\"goods_detail\":[{\"goods_id\":\"6934572310301\",\"goods_name\":\"太龙双黄连口服液\",\"price\":\"43.00\",\"quantity\":\"1\",\"wxpay_goods_id\":\"12235413214070356458058\"}]}}";
2024-11-04 16:05:10 +08:00
// 是否延迟交易
2024-11-04 15:26:37 +08:00
$paramsInfo["delay_acct_flag"] = "N";
2024-11-04 16:05:10 +08:00
// 分账对象
2024-11-04 15:26:37 +08:00
$paramsInfo["acct_split_bunch"] = "{\"acct_infos\":[{\"div_amt\":\"0.10\",\"huifu_id\":\"6666000109133323\"}]}";
2024-11-04 16:05:10 +08:00
// 传入分账遇到优惠的处理规则
2024-11-04 15:26:37 +08:00
$paramsInfo["term_div_coupon_type"] = "0";
2024-11-04 16:05:10 +08:00
// 禁用信用卡标记
2024-11-04 15:26:37 +08:00
$paramsInfo["limit_pay_type"] = "NO_CREDIT";
2024-11-04 16:05:10 +08:00
// 场景类型
2024-11-04 15:26:37 +08:00
$paramsInfo["pay_scene"] = "02";
2024-11-04 16:05:10 +08:00
// 备注
2024-11-04 15:26:37 +08:00
$paramsInfo["remark"] = "string";
2024-11-04 16:05:10 +08:00
// 安全信息
2024-11-04 15:26:37 +08:00
$paramsInfo["risk_check_data"] = "{\"ip_addr\":\"180.167.105.130\",\"base_station\":\"192.168.1.1\",\"latitude\":\"33.3\",\"longitude\":\"33.3\"}";
2024-11-04 16:05:10 +08:00
// 设备信息
2024-11-04 15:26:37 +08:00
$paramsInfo["terminal_device_data"] = "{\"device_type\":\"1\",\"device_ip\":\"10.10.0.1\",\"device_gps\":\"192.168.0.0\",\"devs_id\":\"SPINTP357338300264411\"}";
2024-11-04 16:05:10 +08:00
// 异步通知地址
2024-11-04 15:26:37 +08:00
$paramsInfo["notify_url"] = "http://www.baidu.com";
2024-11-04 16:05:10 +08:00
// 3. 发起API调用
2024-11-04 15:26:37 +08:00
$bspay = new BsPay();
$result = $bspay->post("v2.trade.payment.jspay", $paramsInfo, '', 'default');
2024-11-04 16:05:10 +08:00
if (!$result || $result->isError()) { //失败处理
2024-11-04 15:26:37 +08:00
var_dump($result->getErrorInfo());
2024-11-04 16:05:10 +08:00
} else { //成功处理
2024-11-04 15:26:37 +08:00
var_dump($result);
}
}
2024-11-27 14:35:15 +08:00
public function test(){
$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'
];
$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);
var_dump($result);
}
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,'','&amp');
return $str;
}
2024-11-04 15:26:37 +08:00
}