java - 支付系统的预发布环境如何搭建

 echo7111436 发布于 2022-10-26 18:31

支付系统涉及到很多回调通知,如何把第三方回调重定向到预发布环境上,特定的一些测试的url走预发布环境,其他的回调通知还是走生产环境(利用订单号区分?很多第三方回调的url很怪异)

例如:

腾讯退款

TenpayNotify?action=tenpayresp&bank_billno=20160803011500205322&bank_type=0&discount=0&fee_type=1&input_charset=UTF-8¬ify_id=0nWEkl9GQh292zuCI_YLZLgR2Ssac_lVMSsrwGYIdhZ7VgyZnQQo5Lv_meAWZPoOnQBdsaoWNyf79rj19w1Yot_uIS23xaiw&out_trade_no=160803021511209902&partner=1215937301&product_fee=1&sign_type=MD5&time_end=20160803170601&total_fee=1&trade_mode=1&trade_state=0&transaction_id=1215937301201608031800471550&transport_fee=0&sign=7C4E4146C0C753A7B67B590EFC276F1F

阿里安全支付

aliwappayNotify?action=callback&out_trade_no=15071468688519260215&request_token=requestToken&result=success&trade_no=2015071421001004900020905555&sign=iEo0%2FjTi7wdfBH1ceMD1vfMsuR360%2FcNzvk2Gp751jdeHFs%2F%2Bn6KqlEJn5xgU3CF5rFIML4Pzhowi7Vj0WDHRqS8WDYRGqSzbHYXyjpC0tOza%2BNXOSbSTDiMjA6d8O8BwybAHt%2FmEbyq7UjTpmELrmhjB8P6t7ysWI76zqoNt7g%3D&sign_type=0001

支付宝回调

action=alipayresp&body=%E8%BF%85%E9%9B%B7%E7%99%BD%E9%87%91%E4%BC%9A%E5%91%98&buyer_email=yulinfeng007%40163.com&buyer_id=2088102231970203&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3InWf0XaGKI%252Bxji3mqOogfL8SaB4E%252BINCw%252Fs29ny5j5FhlLjhTSG¬ify_time=2016-08-22+14%3A31%3A15¬ify_type=trade_status_sync&out_trade_no=16082218455489530210&payment_type=1&seller_email=incomexl%40xunlei.com&seller_id=2088001933470180&subject=%E8%BF%85%E9%9B%B7%E7%99%BD%E9%87%91%E4%BC%9A%E5%91%98&total_fee=0.01&trade_no=2016082221001004200219501239&trade_status=TRADE_SUCCESS&sign=d03c9a26a9e68cfe8f0d0368dc993144&sign_type=MD5

回调地址的配置有一些是在第三方配置的,有一些是自己系统传给第三方的

问题难点在于切换回调通知到预发布环境和生产环境

有没大神做过类似支付系统的预发布环境,谢谢分享啦~~

2 个回答
  • 生产环境绑定域名url,预发布环境绑定域名url_pre

    url用配置文件管理

    这样代码读两个环境不同的url配置,这样能高度保证代码是一样的

    提交支付请求的时候会要求传通知的url地址,所以预发布传url_pre就好了,生产环境传url

    2022-10-27 01:09 回答
  • 测试、正式环境采用不同的订单号生成规则。第三方回调时应该有一些参数是由商家提交。比如测试环境中的订单增加前缀testnginx端可以根据参数做路由规则,下面的示例楼主可以测试一下。

    location = /notify {
        if ($args ~ tradeNo=test) {
            rewrite ^ https://www.baidu.com redirect;
        }
        rewrite ^ https://www.taobao.com redirect;
    }

    测试请求订单号:http://[ip]/notify?tradeNo=test55555
    正式请求订单号:http://[ip]/notify?tradeNo=5555

    Nginx 配置整理
    Nginx 官方文档

    2022-10-27 01:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有