PHP 는 QQ,위 챗,알 리 페 이 3 합 1 수금 코드 인 스 턴 스 코드 를 실현 합 니 다.

머리말
최근 블 로 그 를 둘 러 보 니 많은 블 로그 들 이 포상 기능 을 가지 고 있 는 것 으로 나 타 났 다.상 을 주 는 사람 이 적 을 수도 있 지만 항상 마음 이 고 블 로 거들 에 게 자신 이 쓴 글 이 유용 하고 도움 이 된다 는 것 을 알 게 해 준다.그래서 저도 포상 기능 을 하나 더 하고 싶 어 요~
분석 하 다.
그러나 github 를 한 바퀴 둘 러 본 결과 포상 플러그 인 은 기본적으로 천편일률 적 인 QQ 스 캔/위 챗 스 캔/알 리 페 이 스 스 캔 코드 를 발견 했다.

어떤 것 은 버튼 을 누 르 면 모든 수금 코드 가 나 옵 니 다.

어떤 것 은 모든 수금 코드 가 다 나 와 요.
위 챗 스 캔,알 리 페 이 스 스 캔,그 건 여러 장의 QR 코드 를 불 러 올 뿐만 아니 라 css/js 를 넣 어 예 쁘 게 만들어 야 합 니 다.게 으 르 고 이런 물건 을 쓰 고 싶 지 않 은 프로그램 원숭이 로 서 이 건 안 됩 니 다.
그럼 QQ 위 챗 알 리 페 이 를 하나 로 합치 면 되 나 요?
여기 서 하나의 지식 과 관련 된 것 은 User-agent 이다.큰 공장 의 webview 는 모두 자신의 UA 정 보 를 가지 고 다 닌 다.예 를 들 어:
QQ: MQQBrowser/6.2 TBS/043221 Safari/537.36 QQ/7.0.0.3135위 챗:MQQBrowser/6.2 TBS 043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/4G Language/zh_CN알 리 페 이: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이렇게 하면 QQ 인지 위 챗 인지 알 리 페 이 스 코드 인지 쉽게 구분 할 수 있 습 니 다.
User-agent 는 QQ/QQ 를 포함 하고 있 습 니 다.
User-agent 는 MicroMessenger 를 위 챗 으로 포함 하고 있 습 니 다.
User-agent 는 Alipay Client 를 알 리 페 이 로 포함 하고 있 습 니 다.
각 소프트웨어 를 구분 할 수 있 는 만큼 자체 적 으로 하나의 웹 사 이 트 를 만 들 고 QR 코드 를 통 해 이 웹 사 이 트 를 스 캔 한 후 브 라 우 저의 UA 를 판단 하여 서로 다른 수금 코드 를 나 눠 줄 수 있다.
대체적인 절 차 는 다음 과 같다.
클 라 이언 트 스 캔->서버 는 User-agent 에 따라 클 라 이언 트 유형 을 판단 합 니 다->각각 다른 처 리 를 되 돌려 줍 니 다.
고생 을 시작 하 다
먼저 QQ,위 챗,알 리 페 이 가 생 성 한 결제 코드 를 해독 하면가다 온라인 디 코딩
QQ:https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=슈 뢰 딩 거의 고양이&f=Wallet
(https 프로 토 콜,QQ 를 깨 울 수 없 음)
알 리 페 이:HTTPS://QR.ALIPAY.COM/FKX03549OW666ME7BXWF7A
(https 프로 토 콜,알 리 페 이 앱 을 직접 깨 울 수 있 음)
위 챗:wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k
(위 챗 자체 결제 협의,위 챗 깨 울 수 없 음)
다음은 바로 코드 를 쓸 수 있 습 니 다.User-agent 가 알 리 페 이 가 알 리 페 이 링크 로 바로 이동 하고 QQ 와 위 챗 이 라면 QQ 와 위 챗 의 링크 로 이동 하 는 것 으로 판단 합 니 다.
그러나 QQ 와 위 챗 이 앱 을 직접 깨 울 수 없 기 때문에 QQ 와 위 챗 의 QR 코드 를 직접 출력 한 뒤 스 캔 코드 를 길 게 눌 러 결제 한다.
코드 는 다음 과 같 습 니 다:

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if (strpos($ua, 'MicroMessenger')) {
 $type = 'wepay';
 $name = '    ';
 //      
 $url = 'wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k';
 $icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojrwgr20oj303k03kglg.jpg" width="48px" height="48px" alt="'.$name.'">';
}
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="'.$name.'">';
}
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="'.$name.'">';
}
$qr_img = '<img src="http://qr.liantu.com/api.php?text='.urlencode($url).'">';
?>
<!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?>">
 <div class="container">
  <div class="title"><?=$icon_img?><h1><?=$name?></h1></div>
  <div class="content"><?=$type=='other'?$qr_img.'<h3>      、  、QQ       </h3>':$qr_img.'<h3>          , TA  </h3>'?></div>
 </div>
</body>
</html>
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기