第四方 fast快捷支付封装
2024-09-07 20:27:47
class Fastpay {
protected $conf = [
'appkey'=>'',//appkey
'key'=>'',//秘钥
];
protected $http_type='http'; public function __construct($payInfo=[]){
if($payInfo)
{
foreach ($payInfo as $field => $val) {
$this->config[$field]=$val['val'];
}
}
}
public function index($data)
{
$data = array(
'appkey'=>$this->config['appkey'],//你的appkey
'uid'=>$data['attach'],//你的用户id
'total_fee'=>$data['total'],//你的金额
'order_no'=>$data['pay_sn'],//你的订单号
'pay_title'=>$data['subject'],//你的订单号
'me_param'=>$data['attach'],//其他参数,可返回回调里面
'notify_url'=>$data['notify_url'],//异步回调地址
'me_back_url'=>$data['return_url'],//支付成功后返回
'me_eshop_openid'=>'',//付款用户openid
'me_party'=>'',//根据其他支付插件,异步回调返回同样参数,比如填写codepay,码支付,我们异步回调的时候就按码支付的回调参数返回
'sign'=>''//签名
);
$checkRes=$this->checkData($data);
if($checkRes['code']==0)
{
return $checkRes;
}
$data=$checkRes['data'];
$url_quer=http_build_query($data);
$url=($this->http_type=='https') ? "/fastpay/fpay/pays.php?{$url_quer}" : "/fastpay/fpay/pay.php?{$url_quer}" ;
return ['code'=>1,'msg'=>'success','data'=>['payurl'=>$url]];
} // 检测数据
public function checkData($data)
{
extract($data);
if (empty($appkey)) {
return ['code'=>0,'msg'=>'appkey没有填写'];
}
if (empty($total_fee)) {
return ['code'=>0,'msg'=>'金额不能为空'];
}
if (empty($uid)) {
return ['code'=>0,'msg'=>'付款用户id不能为空'];
}
if (empty($order_no)) {
return ['code'=>0,'msg'=>'请输入支付编号'];
}
if (!empty($me_back_url)) {
$data['me_back_url']=urlencode($me_back_url);
}
if (!empty($notify_url)) {
$data['notify_url']=urlencode($notify_url);
} // 直接将金额精确到两位数
$data['total_fee']=bcadd($total_fee, 0, 2);
if (empty($sign)) {
$data['sign']=$this->pay_sign($data);
} return ['code'=>1,'msg'=>'success','data'=>$data];
} //支付下单计算签名
public function pay_sign($paydata)
{
$str_sign="appkey={$paydata['appkey']}&order_no={$paydata['order_no']}&secretkey=".$this->config['key']."&total_fee={$paydata['total_fee']}&uid={$paydata['uid']}&";
$sign=md5($str_sign);
return $sign;
} function notify_sign($paydata)
{
$str_sign="appkey={$paydata['appkey']}&order_no={$paydata['order_no']}&secretkey=".SECRET_KEY."&me_pri={$paydata['me_pri']}&uid={$paydata['uid']}&";
$sign=md5($str_sign);
return $sign;
} }
最新文章
- tomcat 8.5.9.0 解决catalina.out过大的问题
- C++代码重构——从C global到C++ template
- SQL SERVER 合并重复行,行列转换
- HBuilder从下载到使用
- Seo标签权重
- js中属性和方法的类型和区别
- CentOS 安装rz和sz命令
- 如何用Wireshark捕获USB数据?
- 初探YAML
- -XX:+printGC
- linux系统:rm-rf执行以后,怎么办?我来教你恢复文件。
- android 开发必用的开源库
- zookeeper[5] zookeeper集群配置及伪集群配置
- 判别linux机器字节序为大端还是小端
- 漏洞:WebRTC 泄漏用户IP
- jQuery的事件和动画
- Vue history模式支持ie9
- MT【289】含参绝对值的最大值之三
- python 爬虫基础知识一
- bloomfilter 以及count min sketch