论坛风格切换
  • 3275阅读
  • 1回复

[bug]开启反向代理后的支付宝充值记录ip错误 [复制链接]

上一主题 下一主题
离线prisk
 

发帖
278
金币
0
威望
59
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-05-17
开启反向代理后 用支付宝在线充值积分后
出现问题如图 :

所记录的IP都为代理服务器的ip

修改文件alipay.php

  1. if ($rt['state'] == 2) {
  2.     procUnLock('alipay',$winduid);
  3.     paymsg($ret_url,'alipay_orderssuccess');
  4. }
  5.     
  6. if (file_exists(R_P."require/olpay/pay_{$rt[type]}.php")) {
  7.       require_once S::escapePath(R_P."require/olpay/pay_{$rt[type]}.php");
  8. }
  9. $db->update("UPDATE pw_clientorder SET payemail=" . S::sqlEscape($buyer_email) . ",state=2 WHERE order_no=" . S::sqlEscape($out_trade_no));
  10. procUnLock('alipay',$winduid);
  11. paymsg($ret_url,'alipay_orderssuccess');


修改为

  1. if ($rt['state'] == 2) {
  2. // 反向代理服务器分发请求给web  这边的$_SERVER["REMOTE_ADDR"]  为用户真实ip 更新积分日志
  3. // 实际上在第一次paymsg中跳转已经发生 反向代理分发的间隔很短 所以从页面上看不到两次跳转 只看到这次跳转
  4.     if (file_exists(R_P."require/olpay/pay_{$rt[type]}.php") && $db_xforwardip) {
  5.             require_once S::escapePath(R_P."require/olpay/pay_{$rt[type]}.php");
  6.       }
  7. }
  8.     procUnLock('alipay',$winduid);
  9.     paymsg($ret_url,'alipay_orderssuccess');
  10. }
  11. //在开启反向代理情况下第一次返回到代理服务器 $_SERVER["REMOTE_ADDR"] 为代理服务器的地址 不记录积分日志
  12. if (file_exists(R_P."require/olpay/pay_{$rt[type]}.php") && !$db_xforwardip) {
  13.           require_once S::escapePath(R_P."require/olpay/pay_{$rt[type]}.php");
  14. }
  15. $db->update("UPDATE pw_clientorder SET payemail=" . S::sqlEscape($buyer_email) . ",state=2 WHERE order_no=" . S::sqlEscape($out_trade_no));
  16. procUnLock('alipay',$winduid);
  17. paymsg($ret_url,'alipay_orderssuccess');


更新后
1条评分bug优化分+2
云天河 bug优化分 +2 - 2012-05-17
[img]http://appimg.veryapp.com/pbar/img.php?barhash=4b7ee90840c62e74d81ca326e43bb302d7b460c4[/img]
离线cmwxbgmu

发帖
6
金币
0
威望
0
只看该作者 沙发  发表于: 2012-10-19
其实我是水蒸气<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>自制美白保湿面膜
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
提到某人:
选择好友
上一个 下一个