Maison  >  Questions et réponses  >  le corps du texte

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

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

例如:

腾讯退款

TenpayNotify?action=tenpayresp&bank_billno=20160803011500205322&bank_type=0&discount=0&fee_type=1&input_charset=UTF-8&notify_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&notify_id=RqPnCoPT3K9%252Fvwbh3InWf0XaGKI%252Bxji3mqOogfL8SaB4E%252BINCw%252Fs29ny5j5FhlLjhTSG&notify_time=2016-08-22+14%3A31%3A15&notify_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

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

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

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

PHP中文网PHP中文网2741 Il y a quelques jours960

répondre à tous(2)je répondrai

  • ringa_lee

    ringa_lee2017-04-18 10:13:40

    Les environnements de test et officiels utilisent des règles de génération de numéros de commande différentes. Certains paramètres doivent être soumis par le commerçant lors du rappel tiers. Par exemple, si vous ajoutez le préfixe test à la commande dans l'environnement de test, vous pouvez créer des règles de routage basées sur les paramètres du côté nginx. Vous pouvez le tester avec l'exemple suivant.

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

    Numéro de commande de demande de test : http://[ip]/notify?tradeNo=test55555
    Numéro de commande de demande formelle : http://[ip]/notify?tradeNo=5555

    Organisation de configuration Nginx
    Documentation officielle Nginx

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 10:13:40

    L'environnement de production est lié à l'url du nom de domaine et l'environnement de pré-version est lié au nom de domaine url_pre

    Gestion des URL à l'aide de fichiers de configuration

    De cette façon, le code lit les différentes configurations d'url des deux environnements, ce qui peut garantir que le code est le même

    Lors de la soumission d'une demande de paiement, il vous sera demandé de transmettre l'adresse URL de la notification, il vous suffit donc de transmettre url_pre pour la pré-version et l'URL pour l'environnement de production

    répondre
    0
  • Annulerrépondre