Maison  >  Article  >  développement back-end  >  Comment implémenter le code de paiement trois-en-un de QQ, WeChat et Alipay en utilisant PHP

Comment implémenter le code de paiement trois-en-un de QQ, WeChat et Alipay en utilisant PHP

php中世界最好的语言
php中世界最好的语言original
2018-05-18 14:44:003228parcourir

Cette fois, je vais vous montrer comment mettre en œuvre le code de paiement trois en un de QQ, WeChat et Alipay en utilisant PHP. Quelles sont les précautions pour mettre en œuvre le code de paiement trois en un de. QQ, WeChat et Alipay en PHP, ce qui suit est un cas pratique, jetons un coup d'œil.

Préface

Lorsque je parcourais les blogs récemment, j'ai découvert que de nombreux blogs ont une fonction de pourboire, même s'il peut y avoir très peu de personnes qui Astuce Mais c'est toujours une pensée sincère qui permet aux blogueurs de savoir que les articles qu'ils écrivent sont utiles et peuvent aider les gens. Par conséquent, je voulais également ajouter une fonction de pourboire~

Analyse

Mais après avoir parcouru github, j'ai trouvé que le plug-in de pourboire c'est fondamentalement qu'ils sont tous identiques : numérisation de code QQ/analyse de code WeChat/analyse de code Alipay.

Certains cliquent sur chaque bouton et chaque code de paiement apparaîtra

Certains afficheront chaque code de paiement Montrez-les tous

Scannez ceci avec WeChat et scannez cela avec Alipay. Non seulement vous devez charger plusieurs codes QR, mais vous devez également ajouter des CSS/js pour les rendre beaux. En tant que programmeur paresseux et qui ne le fait pas. Je ne veux pas écrire ces choses, ce n’est pas possible.

Puis-je combiner QQ, WeChat et Alipay en un seul, simplement en scannant un code de paiement ?

Il y a un point de connaissance impliqué ici, qui est l'agent utilisateur. Les vues Web des principaux fabricants contiendront leurs propres informations UA, par exemple :

QQ : MQQBrowser/6.2 TBS/043221 Safari/537.36 QQ/7.0.0.3135

WeChat : MQQBrowser/6.2 TBS 043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/4G Language/zh_CN

Alipay : UCBrowser/11.5.0.939 UCBS/2.10.1.6 Mobile Safari/537.36 AliApp(AP/10.0.15.051805) AlipayClient/10.0.15.051805 Language/zh-Hans

De cette façon, il est facile de distinguer s'il s'agit de QQ, WeChat ou Alipay. Scannez le code QR :

User-Agent contient QQ/ pour QQ

User-Agent contient MicroMessenger pour WeChat

User-Agent contient AlipayClient pour Alipay

Puisque vous pouvez distinguer chaque logiciel, vous pouvez créer une URL faite maison via Après avoir généré le code QR et scanné cette URL, l'UA du navigateur est déterminé à distribuer différents codes de paiement

Le processus général est le suivant :

Le client scanne le code-> Le serveur basé sur User-Agent détermine le type de client -> Renvoie respectivement différents processus

Commencer à lancer

Premier décodage les messages générés depuis QQ, WeChat et Alipay Pour le code de paiement, vous pouvez aller ici ou ici pour le décoder en ligne.

QQ :

https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B 482 FC9E7AD&n=Le chat de Schrödinger&f=portefeuille

(Protocole https, impossible de réveiller QQ)

Alipay : HTTPS://QR.ALIPAY.COM/FKX03549OW666ME7BXWF7A

(Protocole https, peut réveiller directement l'application Alipay)

WeChat : wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k

(le propre protocole de paiement de WeChat, ne peut pas réveiller WeChat)

Vous pouvez écrire le code directement ci-dessous pour déterminer si l'agent utilisateur est Alipay, accédez directement au lien Alipay. S'il s'agit de QQ et WeChat, accédez au lien QQ et WeChat.

Cependant, étant donné que QQ et WeChat ne peuvent pas réveiller directement l'application, vous pouvez directement afficher un code QR de QQ et WeChat, puis appuyer longuement pour scanner le code afin de finaliser le paiement.

Le code est le suivant :

<?php
$ua = $_SERVER[&#39;HTTP_USER_AGENT&#39;];
if (strpos($ua, &#39;MicroMessenger&#39;)) {
 $type = &#39;wepay&#39;;
 $name = &#39;微信支付&#39;;
 //微信支付链接
 $url = &#39;wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k&#39;;
 $icon_img = &#39;<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojrwgr20oj303k03kglg.jpg" width="48px" height="48px" alt="&#39;.$name.&#39;">';
}
elseif (strpos($ua, 'AlipayClient')) {
 //支付宝链接
 $url = 'HTTPS://QR.ALIPAY.COM/FKX03479QJ0RVOS3UJLQAE';
 header('location: ' . $url);
}
elseif (strpos($ua, 'QQ/')) {
 $type = 'qq';
 $name = 'QQ钱包支付';
 //QQ钱包支付链接
 $url = 'https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=薛定谔的猫&f=wallet';
 $icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojrvmp427j303k03kjrb.jpg" width="48px" height="48px" alt="&#39;.$name.&#39;">';
}
else {
 $type = 'other';
 $name = '打赏作者';
 $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
 $icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojs089x6tj303k03kjr6.jpg" width="48px" height="48px" alt="&#39;.$name.&#39;">';
}
$qr_img = '<img src="http://qr.liantu.com/api.php?text=&#39;.urlencode($url).&#39;">';
?>
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="renderer" content="webkit">
 <meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title><?=$name?></title>
 <style type="text/css">
  * {margin: auto;padding: 0;border: 0;}
  html {-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}
  body {font-family: -apple-system, SF UI Text, Arial, Microsoft YaHei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif;color: #333;}
  img {max-width: 100%;}
  h3 {padding: 10px;}
  .container {text-align: center;}
  .title {padding: 2em 0;background-color: #fff;}
  .content {padding: 2em 1em;color: #fff;}
  .wepay {background-color: #23ac38;}
  .qq {background-color: #4c97d5;}
  .other {background-color: #ff7055;}
 </style>
</head>
<body class="<?=$type?>">
 <p class="container">
  <p class="title"><?=$icon_img?><h1><?=$name?></h1></p>
  <p class="content"><?=$type==&#39;other&#39;?$qr_img.&#39;<h3>请使用支付宝、微信、QQ客户端扫码付款</h3>':$qr_img.'<h3>扫描或长按识别二维码,向TA付款</h3>'?></p>
 </p>
</body>
</html>
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez faire attention. vers d'autres articles connexes sur le site Web PHP chinois !

Lecture recommandée :

Explication détaillée de l'utilisation de l'espace de noms php

Explication détaillée de l'utilisation du noyau Laravel 5.5 architecture

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Algorithme de backtracking PHPArticle suivant:Algorithme de backtracking PHP