第三方支付回调地址代理转发
支付宝微信支付时,需要配置支付的回调地址,但是更改运行环境的服务器的时候,都需要更改对应的DNS对应的IP地址,
这里做一个代理转发,第三方回调的路径不需要改变;
1.商户调用第三方接口的时候,把运行环境的地址信息(IP、端口)作为自定义参数传递给三方支付接口,第三方再拿这些参数回调的给定的url;
2.解析自定义参数中的运行服务器地址信息,做请求的转发
运行服务器的地址信息 $api.xxx.cn@101.101.101.101:8080$
<?php $uri = $_SERVER['REQUEST_URI']; $method = $_SERVER["REQUEST_METHOD"]; $data = file_get_contents('php://input'); $data_decode = urldecode($data); $attach = ''; if(preg_match('/&ATTACH=([^&]*)&/', $data_decode, $match_attach) && !empty($match_attach[1])){ $attach = base64_decode($match_attach[1]); } if ( !preg_match('|\$(.*?)@(.*?)(?:\:(\d+))?\$|', $data, $matches) && !preg_match('|\$(.*?)@(.*?)(?:\:(\d+))?\$|', $data_decode, $matches) && !preg_match('|\$(.*?)@(.*?)(?:\:(\d+))?\$|', $attach, $matches)) { file_put_contents('./exception.log', date('c')."\n" .$method.' '.$uri."\n" .$data."\n", FILE_APPEND); return; } list(,$domain, $host, $port) = $matches; $headers = [ "Host: $domain", ]; $headers_from_request = ['HTTP_HOST', 'HTTP_CONTENT_LENGTH']; foreach( $_SERVER as $header => $value) { if ( substr($header,0,5) == 'HTTP_' && !in_array($header, $headers_from_request) ) { $header_words = explode('_', $header); array_shift($header_words); foreach($header_words as &$word) { $word = ucfirst(strtolower($word)); } $headers[] = implode('-', $header_words).': '.$value; } } file_put_contents('./request.log', date('c')."\n" .$method.' '.$uri."\n" .implode("\n", $headers)."\n\n" .$data."\n", FILE_APPEND); $fp = fopen('./proxy.log', 'a+'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $host.$uri); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($ch, CURLOPT_PORT, $port); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_STDERR, $fp); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); echo $response; fwrite($fp, $response);
第三方支付回调地址代理转发相关推荐
- QQ第三方登录回调地址的问题
如题,维护以前的项目,发现原来QQ的第三方登录竟然失败了.回调地址的问题 原来是以前的规则变了.好吧,那就改,谁叫我不是改变规则的人. 中途浪费了点时间,项目很大,我一下也找不到项目里那个接口调用的, ...
- 微信支付回调地址 http https问题
看这个帖子 https://bbs.csdn.net/topics/391937455?page=1#post-403658337 首先你得排除其他的问题 比如:地址错误,带参数,重定向了,内部报错这 ...
- 微信支付 回调地址哪里设置
参考资料 JAVA微信扫码支付及微信App支付开发(模式二)完整功能实现
- 支付宝微信支付回调地址访问不成功
备忘备忘
- 关于支付回调的一些思考
前段时间在工作中又一次接触到了公司关于支付相关的业务领域,于是又一次重新回顾了工作中使用的支付框架. 之前写过的很多篇文章都是先介绍整体背景,再深入到每一点去做分析,今天打算换种方式,尝试从 why ...
- 若依分离版整合IJpay实现第三方支付-(微信支付篇_v2)
若依分离版整合IJpay实现第三方支付-(微信支付篇_v2) IJpay官网 https://javen205.gitee.io/ijpay/ 文章目录 若依分离版整合IJpay实现第三方支付-(微信 ...
- 支付宝支付回调不成功原因及解决
问题: 1.在支付是配置了回调地址,支付成功后没有收到支付宝的回调. 定位: 1.首先访问了回调的地址,发现地址正常访问没有问题. 2.查看起调支付的日志,看到回调地址写入到支付参数中. 3.支付完成 ...
- 网联靴子将落地,银行将关闭第三方支付直接代扣通道
延伸阅读:网联的前世今生 网联系统始建于2016年,是独立于现有银行间支付清算机构的新平台,该平台只有清算功能,不做支付,也不发卡.平台由各个参与方自主共建.除了央行和支付清算协会以外,其余股东股份最 ...
- php 微信支付 回调处理,TP微信支付(回调处理)
1.微信支付回调 此方法从网上查找的 需要配置文件的支持 Paste_Image.png /* *微信支付 * 回调地址 notifyurl * */ public function notifyur ...
- 2020年第三方支付接口讲解流程分享
一.网关支付 这是在线支付的最普遍形式. 大致支付过程:第三方支付公司作为代理(网关),接入一堆银行.用户在网关页面(可以在商户端,也可以第三方支付平台端)选择银行,页面跳转到第三方支付平台,然后重定 ...
最新文章
- 苹果修复iPhone漏洞突显手机安全隐忧
- 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解
- win10系统U盘启动
- 小程序真机测试错误代码_测试不充分:知道您的代码是否真的可以投入生产的5种方法...
- 71.Ext.form.ComboBox 完整属性
- Tomcat下载安装配置详细过程
- java混淆工具zelix比较_Java逆向基础之混淆器
- php表格中的caption,HTML中的caption属性是什么意思?caption标签在HTML中的用法(附实例)...
- 【ECS】云服务器ECS是什么
- 如何理解P和NP问题
- 恒讯科技分析:海外云服务器的网络防火墙怎么设?
- C++解决一元多次不等式和多元一次不等式
- 【Derivation】Nyquist采样定理
- 码云新建仓库-代码上传
- 0018 求球的表面积和体积
- lighttpd隐藏index.php,lighttpd开启rewrite伪静态方法 - 老牛博客
- Ubuntu系统安装在移动固态硬盘,实现在不同电脑即插即用
- GhostXP_SP2电脑公司特别版_v8.5_island完美版
- FormData 类型
- 数据保护系列-敏感数据分类分级