富友支付 统一下单接口 自创php版本demo

看了文档才发现demo只有java版本的 那可不妙啊 还好在我的坚持与努力下 终于参透了这文档.

就这个文档 富友开放接口文档  有一说一这个验签的方式还是很简介的直接md5验签 害我找了半天的DES加密解密。。结果回过头来发现都是徒劳  代码如下自创php版本demo

我是用的测试地址  然后文档的测试账号 测试秘钥 

    /**
     * 富友支付测试
     * @autor gao
     * @Date 2022/6/23 10:33
     * @return bool|int|string
     */
    public function rich_company_orders(){
        $data=array();
        $data['mchnt_cd']="0002900F1503036";//商户号, 富友分配给二级商户的商户号
        $data['order_type'] = "WECHAT";
        $data['order_amt']=100;//金额单位 fen
        $data['mchnt_order_no']= "1066".time();//内部订单号
        $data['txn_begin_ts']=date('YmdHis',time());//订单生成时间
        $data['goods_des']="描述";//商品描述
        $data['term_id']="88888888";//终端号
        $data['term_ip']="127.0.0.1";
        $data['notify_url']="wx.test.com";//回调URL
        $data['random_str']= $this->random_keys(32);//随机字符串
        $data['version']="1.0";
        //商户号
        $mchnt_cd = $data['mchnt_cd'];
        //支付类型
        $order_type = $data['order_type'];
        //订单总金额
        $order_amt = $data['order_amt'];
        //订单号
        $mchnt_order_no = $data['mchnt_order_no'];
        //订单开始时间
        $txn_begin_ts = $data['txn_begin_ts'];
        //商品描述
        $goods_des = $data['goods_des'];
        //终端号
        $term_id = $data['term_id'];
        //终端ip
        $term_ip = $data['term_ip']="127.0.0.1";
        //回调地址
        $notify_url = $data['notify_url'];
        //随机字符串
        $random_str = $data['random_str'];
        //版本号
        $version = $data['version'];
        //商户秘钥
        $mchnt_key = 'f00dac5077ea11e754e14c9541bc0170';
        $data['sign'] = md5($mchnt_cd."|".$order_type."|".$order_amt."|".$mchnt_order_no."|".$txn_begin_ts."|".$goods_des."|".$term_id."|".$term_ip."|".$notify_url."|".$random_str."|".$version."|".$mchnt_key);
        $data  = json_encode($data);
        $url = "https://aipaytest.fuioupay.com/aggregatePay/preCreate";
        $header = array (
            "Content-Type: application/json",
        );
        $res = $this->SendDataByCurl($url,$data,$header);
        return $res;
    }
    //通过curl模拟post的请求;
    public function SendDataByCurl($url,$data,$header){
        //对空格进行转义
        $url = str_replace(' ','+',$url);
        $ch = curl_init();
        //设置选项,包括URL
        curl_setopt($ch, CURLOPT_URL, "$url");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch,CURLOPT_TIMEOUT,3); //定义超时3秒钟
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  //设置头信息的地方
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        // POST数据
        curl_setopt($ch, CURLOPT_POST, 1);
        // 把post的变量加上
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  //所需传的数组用http_bulid_query()函数处理一下,就ok了
        //执行并获取url地址的内容
        $output = curl_exec($ch);
        $errorCode = curl_errno($ch);
        //释放curl句柄
        curl_close($ch);
        if(0 !== $errorCode) {
            return $errorCode;
        }
        return $output;
    }
    /**
     * 生成随机数
     * @param int $length
     * @return string
     */
    public function random_keys($length)
    {
        $pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ';
        $key = '';
        for ($i = 0; $i < $length; $i++) {
            $key .= $pattern[mt_rand(0, 35)];    //生成php随机数
        }
        return $key;
    }

如果想要正式支付地址文档也有正式的地址把地址一换 账号一换 秘钥一换就能用了

如果可以点个关注可以吧!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值