Composer 免签约支付宝与微信 带监听
- 免签约支付宝
- 免签约微信支付
- 实时到帐个人账户
- PHP程序自监听
DEMO测试
composer安装:
composer require chen-see/chen-pay
使用教程:
include __DIR__ . '/../vendor/autoload.php';
$aliCookie = '';
$wxCookie = '';
$GLOBALS['aliSum'] = 1;
ChenPay\Pay::Listen(10, function () use ($aliCookie) {
// time 现在时间此为订单生成时间 默认3分钟有效时间
$data = [['fee' => 0.01, 'time' => time() + 3 * 60]];
try {
$run = (new ChenPay\AliPay($aliCookie))->getData()->DataHandle();
foreach ($data as $item) {
$remarks = '123456'; //如果需要判断备注
$order = $run->DataContrast($item['fee'], $item['time'], 5, $remarks);
if ($order) echo "{$order}订单有效!备注:{$remarks}\n";
unset($order, $item);// 摧毁变量防止内存溢出
}
echo $GLOBALS['aliSum'] . "次运行\n";
$GLOBALS['aliSum']++;
} catch (\ChenPay\PayException\PayException $e) {
echo $e->getMessage() . "\n";
unset($e);// 摧毁变量防止内存溢出
}
unset($run, $data);// 摧毁变量防止内存溢出
});
$GLOBALS['wxSum'] = 1;
$GLOBALS['syncKey'] = false;
ChenPay\Pay::Listen(10, function () use ($wxCookie) {
// time 现在时间此为订单生成时间 默认3分钟有效时间
$data = [['fee' => 0.01, 'time' => time() + 3 * 60]];
try {
$run = (new ChenPay\WxPay($wxCookie))->getData('wx.qq.com', $GLOBALS['syncKey'])->DataHandle();
$GLOBALS['syncKey'] = $run->syncKey;
foreach ($data as $item) {
$remarks = '123456'; //如果需要判断备注
$order = $run->DataContrast($item['fee'], $item['time'], 3, $remarks);
if ($order) echo "{$order}订单有效!备注:{$remarks}\n";
unset($order, $item);// 摧毁变量防止内存溢出
}
echo $GLOBALS['wxSum'] . "次运行\n";
$GLOBALS['wxSum']++;
} catch (\ChenPay\PayException\PayException $e) {
echo $e->getMessage() . "\n";
unset($e);// 摧毁变量防止内存溢出
}
unset($run, $data);// 摧毁变量防止内存溢出
});
获取支付宝COOKIE
获取微信COOKIE
运行:
# 前台运行
php test/test.php
# 后台运行
nohup php test/test.php &
注意:
- 支付宝需开通商家服务 (手机支付宝搜索商家服务即可开通)
- 根据备注可判断相同价格多人支付(出现相同价格的多并发支付时可要求用户输入随机数字备注解决该问题)
- 两个支付必须分开运行,demo只是作为演示
- 服务器时间必须是国内的时间,不然对不上支付宝微信时间
- 如果使用框架运行可能存在内存溢出问题,可以使用Crontab,请自行去除
ChenPay\Pay::Listen
函数,变量需要另外选择存储方式mysql\redis等
更新日志:
V1.5
V1.4
V1.3
V1.2
V1.1.1
V1.0.9
V1.0.7
V1.0.6
V1.0.5
- 更新支付宝双接口轮流切换API达到支付宝防止频繁访问阻止机制
- 如果单一接口出现阻止则会持续使用另外接口