Paypal多账号轮询系统开发过程记录---原理篇
原理讲好了,这里我简单的说下代码的实现,我从我已有的框架中,抽出一部分来讲,有能力的估计早就开始自己开发了,没能力的也就看看把~~~
不知道有没有人想把我带回家~
首先我来画个图
啊啊 有点小激动 画错了~~
正图:
仿牌站,将POST或者GET到的商品价格等参数,传送给中间站
中间站,将获取到的
商品价格等参数
传
送给控制站,等待获取控制站处理后的参数
控制站将处理后的结果,返回给中间站,
中间处理以下:
1 标题中敏感词替换
2 匹配数据库中的PAYPAL轮询等参数,以及仿牌站的URL,返回对应分派到的PAYPAL账号
中间站,将返回到的处理后的结果,递交给PAYPAL
PAYPAL将用户付款后的结果,比如付款成功,付款失败,手续费,付款人PAYPAL账号等信息,通知到中间站。
中间站将PAYPAL返回的数值,传递给控制站,控制站主要判断付款成功与否,金额数量,用以匹配数据库中的PAYPAL设定,避免一个PAYPAL超过限定收款次数或金额
中间站将PAYPAL返回的数值,传递给仿牌站,主要判断付款状态,避免客服付款失败,或者造成多次重复付款。
这里,我们先继续看之前那篇思路。
Paypal多账号轮询系统开发过程记录---原理篇
重点是三个文件
1 return----对应付款成功后页面自动跳转返回的页面
2 cancel-return---对应用户在PAYPAL页面点击取消返回的页面
3 notify_url ----对应PAYPAL付款成功状态后PAYPAL给网站通知的URL
也就是中间站,对应要提供这三个路径给PAYPAL和中间站
那么就是基础文件三个
return.php
cancel-return.php
notify_url.php
再包括第一步接收仿牌站通知的那个文件。
这里我假定pay.php
我们先假设以下域名:
仿牌站: https://www.fanpai.com
中间站:https://www.zhongjian.com
控制站:https://bbs.affadsense.com
好累,不知道是不是最近的长时间休息,让我变懒了~
上篇中,有个数据是跳到paypal的
第一步就是将这个URL 改成我们的中间站
这里继续以我喜欢的WORDPRESS+WOOCOMMERCE为例
我们对应这个插件,搜索关键词
然后替换成我们中间站就好。文件是pay.php
那们替换路径就是:https://www.zhongjian.com/pay.php
思路简单,就是一锅端的把获取的数值,JSON格式化,发送到中间站,读取中间站返回的代码,输出即可。
$url = "http://
www.zhongjian.com
/?cmd=paypal";
$_REQUEST["domain"]=$_SERVER['HTTP_HOST'];
$data =json_encode($_REQUEST);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$response =curl_exec($curl);
curl_close($curl);
echo $response;
exit();
获取cmd值,判断是否paypal
因为第二步传过去的cmd=paypal
这里进行数据库比对域名,判断每个PAYPAL的收款次数,收款金额。
然后进行关键词替换,以及输出返回的三要素,替换成中间站。
各种参数替换匹配完成后,通过getcode函数,输出包装好的html代码到中间站。
(这里我只说下简单的代码。能看懂的自然懂,看不懂的估计此刻也懵逼。)
echo $response;
已经通过html实现第四步了。
中间也通过第三步修改的
return.php
cancel-return.php
notify_url.php
对应完成取消,付款成功的状态了。
取消和付款成功,
对应中间站代码: