记录一次24H在线要饭系统的搭建

先上地址:https://yf.heson10.com

前方高能音乐来袭。。。。注意保护耳朵,可预先试听:

为什么搭建?

因为穷

效果图

前台效果图

黑石要饭系统前台界面

前三个没付款的家伙,你们有本事倒是付啊!😂

后台

黑石要饭系统后台界面

搭建摘要

  • 源码用的是烟雨要饭 源码下载地址:http://cdn.yyhy.me/yaofan.zip

  • 对接的是码支付,特点:支付宝 QQ全免 微信免手续费只需交易额度 码支付地址→点击我 下面是其网站的宣传图:

    码支付功能介绍

  • 支付宝开通了商家服务、qq钱包上传了收款码、微信付费签约了并上传收款码
  • 源码需要修改适配码支付,下面简单讲一下

关于源码修改适配问题

核心函数php文件:Pay.Class.php

主要修改了submit()函数,增加了对码支付支付工具type的判断,以及财主爸爸昵称nick的调用,以及增加码支付一些自用参数,函数代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public function submit($type, $out_trade_no, $notify_url, $return_url, $name, $money, $sitename, $nick)
{
if ($type == 'alipay') {
$typeid = 1;
}
if ($type == 'qqpay') {
$typeid = 2;
}
if ($type == 'wxpay') {
$typeid = 3;
}


$data = [
'id' => $this->pid,
'type' => $typeid,
'out_trade_no' => $out_trade_no,
'notify_url' => $notify_url,
'return_url' => $return_url,
'name' => $name,
'price' => $money,
'sitename' => $sitename,
'act' => 0,
'debug' => 0,
'pay_type' => 1,
'pay_id' => $nick,
'param' => $out_trade_no


];
$string = http_build_query($data);
$sign = $this->getsign($data);
return 'http://codepay.fateqq.com/create_order/?' . $string . '&token=换成自己的token';
}

其中http://codepay.fateqq.com/create_order/?是码支付API的地址,码支付的token写在token=的后面。

网站端yf.heson10.com/Admin/后台里,要填写码支付的id:

码支付ID

Pay/Submit/index.php的修改

主要是前面和前面submit()函数相对应。注意这里的https,如果服务器没开ssl,就换成http

1
submit($order['type'], $order['trade_no'], 'https://' . $_SERVER['HTTP_HOST'] . '/Pay/Notify/', 'https://' . $_SERVER['HTTP_HOST'] . '/Pay/Return/', config('sitename') . ' - 支付订单', $order['money'], config('sitename'), $order['nick']);

修改后附图:

要饭系统submit修改图

Pay/Ruturn/index.php的修改

去掉验证数据,增加对订单号的验证,同时调用自定义参数param,用于定位当前订单号。

1
2
3
4
5
6
7
8
9
10
11
12
13
$data = $_REQUEST;
$pay = new Pay(config('pid'), config('key'),config('api'));
if ($data['pay_no']) {
$order = Db('select * from yyhy_order where trade_no="' . $data['param'] . '"');
if (!$order) exit('fail');
$order = $order[0];
if ($order['status'] != 1) {
Db('update yyhy_order set `status`=1,`endtime`="' . date('Y-m-d H:i:s') . '" where trade_no="' . $data['param'] . '"');
}
alert('施舍成功,好人有好报!', '/');
} else {
alert('支付验证失败,施舍失败了,又吃不到饭饭了!', '/');
}

修改后附图:

要饭系统ruturn页面设置

Pay/Notify/index.php的修改

简单验证单号就行,还要具备补单功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
include '../../Core/Common.php';

$data = $_REQUEST;
$pay = new Pay(config('pid'), config('key'),config('api'));
if ($data['pay_no']) {
echo 'success';
$order = Db('select * from yyhy_order where trade_no="' . $data['param'] . '"');
if (!$order) exit('fail');
$order = $order[0];
if ($order['status'] != 1) {
Db('update yyhy_order set `status`=1,`endtime`="' . date('Y-m-d H:i:s') . '" where trade_no="' . $data['param'] . '"');
}
} else {
echo 'fail';
}

写在后面

好吧,今天又水了一篇。😂😂

Q:为什么写这么一篇水文?

A:因为弄这个还是花了不少功夫,简单记录一下:

  • 一是做笔记让自己知道修改了哪些东西
  • 二是为需要的小伙伴提供思路。

9月11日更新:

已经不算是水文了,更新的文章加上了修改方法和配图,学会的扣111111111111111,没学会的扣眼珠子

9月12日更新:

解决微信、qq支付异步问题。

后期打算更新

  • 前台界面二开
  • 待定