(这篇文章默认支付接口是正确可用的)
在写项目的时候,客户要求做一个店铺扫码支付的功能,这个功能在支付宝上很容易实现,官网上集成了这个方法。
但是微信却不然,微信的这个功能实现需要程序员对于微信本身的公众号支付的接口进行二次开发。
开发的思路也很简单就是程序员这边做一个可以输入价格的界面,然后调用微信的公众号支付接口即可。
但是就这么简单的功能,我就卡了好几天。
出错的地方在于在线上微信内扫码打开上面的页面之后,点击表单提交,不论是get还是post都无法实现数据的正确传递。
基于我是一个从没有写过html页面的人,我一开始怀疑我的页面写的不对,我仔细检查完了之后,确定在除去线上微信内
的其他地方都是可以正确的得到预期的数据。
于是我就去问万能的度娘,得到的结果应该和大家的差不多,微信内post以及get传参有可能失败的,正当我准备骂娘的时候,
突然意识到,我们公司一直都在开发微信内的业务呀,也没发现有传参参不过来的问题呀。于是在稀里糊涂的搞了几天之后,我终
于发现了问题所在,吼吼!
对微信支付有一定了解的人都知道微信公众号支付即JSAPI支付需要去微信公众平台配置用户的支付权限目录,问题就出现在
这个支付目录,微信对于这个支付目录的限制很死,例如http://xxx/就是你设置的支付目录,那么你的支付接口代码写的路由至多
只能在设置好的支付目录下一层。不然都会报该路由没有支付权限。这只是其一,其二是进入支付目录的传参也会被微信保护,所
以get-post传的值会被微信取代或者拦截掉。
知道了上述的两点:那么解决方法也就很简单了,就是通过路由来传递参数,例如http://xxx/0-价格-备注,然后在后台的代
码中用 explode('-',变量名); 方法来对路由的最后部分进行字符串数组拆分,就可以在微信的规则下得到需要传递的参数了。
在这里我就不展示我php的代码了,因为里面都是公众号支付的代码,和此篇的文章内容不符合,我就冒昧的贴出我的html代码,
展示如何将参数放在路由上传递吧(其实也没什么)。
<html><head> <meta charset="UTF-8"> <title>微信扫码支付</title> <style> .hide{display: none;} </style></head><body><h1 id="微信扫码支付">微信扫码支付</h1> 数额:<input type="text" id = 'price' name="price" ></br> 备注:<input type="text" id = 'tradingReason' name= "tradingReason" ></br> <input class="hide" type="text" id = 'url' name= "url" value="{{ url }} "></br> <input type="submit" value="支付" onclick="sub(getValue('price'), getValue('tradingReason') , getValue('url'))"></body><script type="text/javascript"> /* * 模板套的时候单击事件中的跳转方法不要改变(不然值传不到后台)--对传送的价格要进行合法性的验证 * */ function getValue(id) { return document.getElementById(id).value; } function sub(price, tradingReason , url) { var str =url+'-'+price+'-'+tradingReason; self.location = str; }</script></html>
最后展示一下最终的劳动成果吧!
本文永久地址:http://blog.it985.com/16089.html
本文出自IT985博客 ,转载时请注明出处及相应链接。

htmltagsareessentialforstructuringwebpages, 향상 액세스 가능성, SEO 및 성능

Self-ClosingTagsinhtmlandxMlaretagsThatCloseThemselvess withoutseeparateClosingTag, 1) theareStement-well-formeddocuments.2) indugible-ustible butrr

강력한 기능과 우수한 사용자 경험을 가진 웹 사이트를 구축하기 위해서는 HTML만으로는 충분하지 않습니다. 다음 기술도 필요합니다. JavaScript는 웹 페이지 동적 및 상호 작용을 제공하며 DOM을 운영하여 실시간 변경을 달성합니다. CSS는 미학 및 사용자 경험을 향상시키기 위해 웹 페이지의 스타일과 레이아웃을 담당합니다. React, Vue.js 및 Angular와 같은 현대 프레임 워크 및 라이브러리는 개발 효율성 및 코드 조직 구조를 향상시킵니다.

부울 속성은 값없이 활성화되는 HTML의 특수 속성입니다. 1. 부울 속성은 입력 상자를 비활성화하는 등의 존재 여부에 따라 요소의 동작을 제어합니다. 2. 작업 원칙은 브라우저가 구문 분석 할 때 속성의 존재에 따라 요소 동작을 변경하는 것입니다. 3. 기본 사용법은 속성을 직접 추가하는 것이며, 고급 사용량은 JavaScript를 통해 동적으로 제어 될 수 있습니다. 4. 일반적인 실수는 값을 설정해야한다고 잘못 생각하고 올바른 글쓰기 방법은 간결해야합니다. 5. 모범 사례는 코드를 간결하게 유지하고 부울 속성을 합리적으로 사용하여 웹 페이지 성능 및 사용자 경험을 최적화하는 것입니다.

HTML 코드는 온라인 유효성 검사기, 통합 도구 및 자동화 된 프로세스를 통해 깨끗할 수 있습니다. 1) w3cmarkupvalidationservice를 사용하여 온라인으로 HTML 코드를 확인하십시오. 2) 실시간 확인을 위해 VisualStudioCode에 HTMLHINT 확장을 설치하고 구성하십시오. 3) htmltidy를 사용하여 시공 프로세스에서 HTML 파일을 자동으로 확인하고 청소하십시오.

HTML, CSS 및 JavaScript는 최신 웹 페이지를 구축하기위한 핵심 기술입니다. 1. HTML 웹 페이지 구조를 정의합니다. 2. CSS는 웹 페이지의 모양을 담당합니다.

HTML의 기능은 웹 페이지의 구조와 내용을 정의하는 것이며, 그 목적은 정보를 표시하는 표준화 된 방법을 제공하는 것입니다. 1) HTML은 타이틀 및 단락과 같은 태그 및 속성을 통해 웹 페이지의 다양한 부분을 구성합니다. 2) 콘텐츠 및 성능 분리를 지원하고 유지 보수 효율성을 향상시킵니다. 3) HTML은 확장 가능하므로 사용자 정의 태그가 SEO를 향상시킬 수 있습니다.

HTML의 미래 트렌드는 의미론 및 웹 구성 요소이며 CSS의 미래 트렌드는 CSS-In-JS 및 CSShoudini이며, JavaScript의 미래 트렌드는 WebAssembly 및 서버리스입니다. 1. HTML 시맨틱은 접근성과 SEO 효과를 향상시키고 웹 구성 요소는 개발 효율성을 향상 시키지만 브라우저 호환성에주의를 기울여야합니다. 2. CSS-in-JS는 스타일 관리 유연성을 향상 시키지만 파일 크기를 증가시킬 수 있습니다. CSShoudini는 CSS 렌더링의 직접 작동을 허용합니다. 3. Webosembly는 브라우저 애플리케이션 성능을 최적화하지만 가파른 학습 곡선을 가지고 있으며 서버리스는 개발을 단순화하지만 콜드 스타트 문제의 최적화가 필요합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
