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;
} }

最新文章

  1. tomcat 8.5.9.0 解决catalina.out过大的问题
  2. C++代码重构——从C global到C++ template
  3. SQL SERVER 合并重复行,行列转换
  4. HBuilder从下载到使用
  5. Seo标签权重
  6. js中属性和方法的类型和区别
  7. CentOS 安装rz和sz命令
  8. 如何用Wireshark捕获USB数据?
  9. 初探YAML
  10. -XX:+printGC
  11. linux系统:rm-rf执行以后,怎么办?我来教你恢复文件。
  12. android 开发必用的开源库
  13. zookeeper[5] zookeeper集群配置及伪集群配置
  14. 判别linux机器字节序为大端还是小端
  15. 漏洞:WebRTC 泄漏用户IP
  16. jQuery的事件和动画
  17. Vue history模式支持ie9
  18. MT【289】含参绝对值的最大值之三
  19. python 爬虫基础知识一
  20. bloomfilter 以及count min sketch

热门文章

  1. 虚拟机安装Centos(VirtulBox)
  2. python5.1文件的读取
  3. 006_go语言中的互斥锁的作用练习与思考
  4. 005_针对于go语言中速率限制的思考
  5. “随手记”开发记录day14
  6. Docker 快速搭建 MySQL 5.6 开发环境
  7. Nexus2 上传文件
  8. C++最好的图形库是什么?
  9. day1 linux常用命令(一)
  10. clients-producer-组包发送消息