看了文档才发现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;
}
如果想要正式支付地址文档也有正式的地址把地址一换 账号一换 秘钥一换就能用了
如果可以点个关注可以吧!