getConfig(); // 2.组装请求参数 $paramsInfo = array(); // 请求日期 $paramsInfo["req_date"] = "20241101"; // 请求流水号 $paramsInfo["req_seq_id"] = "rQ20241101153502883338"; // 商户号 $paramsInfo["huifu_id"] = "6666000109133323"; // 商品描述 $paramsInfo["goods_desc"] = "测试商品"; // 交易类型 $paramsInfo["trade_type"] = "T_MINIAPP"; // 交易金额 $paramsInfo["trans_amt"] = "0.10"; // 交易有效期 $paramsInfo["time_expire"] = "20250518235959"; // 微信参数集合 $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\"}]}}"; // 是否延迟交易 $paramsInfo["delay_acct_flag"] = "N"; // 分账对象 $paramsInfo["acct_split_bunch"] = "{\"acct_infos\":[{\"div_amt\":\"0.10\",\"huifu_id\":\"6666000109133323\"}]}"; // 传入分账遇到优惠的处理规则 $paramsInfo["term_div_coupon_type"] = "0"; // 禁用信用卡标记 $paramsInfo["limit_pay_type"] = "NO_CREDIT"; // 场景类型 $paramsInfo["pay_scene"] = "02"; // 备注 $paramsInfo["remark"] = "string"; // 安全信息 $paramsInfo["risk_check_data"] = "{\"ip_addr\":\"180.167.105.130\",\"base_station\":\"192.168.1.1\",\"latitude\":\"33.3\",\"longitude\":\"33.3\"}"; // 设备信息 $paramsInfo["terminal_device_data"] = "{\"device_type\":\"1\",\"device_ip\":\"10.10.0.1\",\"device_gps\":\"192.168.0.0\",\"devs_id\":\"SPINTP357338300264411\"}"; // 异步通知地址 $paramsInfo["notify_url"] = "http://www.baidu.com"; // 3. 发起API调用 $bspay = new BsPay(); $result = $bspay->post("v2.trade.payment.jspay", $paramsInfo, '', 'default'); if (!$result || $result->isError()) { //失败处理 var_dump($result->getErrorInfo()); } else { //成功处理 var_dump($result); } } public function test($user_id=1){ $out = "dlh".time().$user_id; $data = [ "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); $merConfig = new MerConfig(); $data['sign'] = $this->sign($data,$merConfig->rsa_huifu_public_key); print_r("
");
        var_dump($data);
        $b = json_encode($data,true);
        var_dump($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);
        $str = "";
        $t = array();
        foreach($params as $key=>$value){
            if(is_array($value)){
                $b = json_encode($value,true);
                $t[] = $key."=".$b;
            }else{
                $t[] = $key."=".$value;
            }

        }

        $str = implode("&",$t);
//        $str = http_build_query($params,'','&');
        return $str;
    }
}