Maison  >  Article  >  développement back-end  >  PHP réalise la cohérence des codes de paiement QQ, WeChat et Alipay

PHP réalise la cohérence des codes de paiement QQ, WeChat et Alipay

小云云
小云云original
2018-02-22 09:12:553151parcourir

Lorsque je parcourais les blogs récemment, j'ai découvert que de nombreux blogs ont une fonction de pourboire. Même si très peu de personnes donnent un pourboire, c'est toujours un geste réfléchi qui permet aux blogueurs de savoir que les articles qu'ils écrivent sont utiles et peuvent. aider les autres. Par conséquent, je voulais également ajouter une fonction de pourboire~

Analyse

Mais après avoir parcouru github, j'ai découvert que les plug-ins de pourboire sont fondamentalement les mêmes : QQ scan code/ WeChat scanne le code QR/Alipay scanne le code QR.


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


Certains Chaque code de paiement est entièrement affiché

Scannez celui-ci avec WeChat et scannez celui-là avec Alipay. Non seulement vous devez charger plusieurs codes QR, mais vous devez également ajouter du CSS/js pour que cela ait fière allure. est paresseux et ne veut pas les écrire. Pour les programmeurs, 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 porteront 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 scannant le code maintenant :

User-Agent contient QQ/ est QQ

User-Agent contient MicroMessenger est WeChat

User-Agent contient AlipayClient est Alipay

Étant donné que chaque logiciel peut être distingué, vous pouvez créer une URL par vous-même, scanner l'URL via la génération de code QR et déterminer l'UA du navigateur pour distribuer différents codes de paiement

Environ Le processus est :

Le client scanne le code-> Le serveur détermine le type de client en fonction de l'agent utilisateur-> Renvoie respectivement différents processus

Commencer à lancer

Décodez d'abord les codes de paiement générés par QQ, WeChat et Alipay. Vous pouvez aller ici ou ici pour décoder en ligne.

QQ : https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n= Schrödinger 's Cat&f=wallet

( protocole https, ne peut pas 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 , déterminez l'agent utilisateur. S'il s'agit d'Alipay, il accédera directement au lien Alipay. S'il s'agit de QQ et WeChat, il accédera directement aux liens 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>

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