(这篇文章默认支付接口是正确可用的)
在写项目的时候,客户要求做一个店铺扫码支付的功能,这个功能在支付宝上很容易实现,官网上集成了这个方法。
但是微信却不然,微信的这个功能实现需要程序员对于微信本身的公众号支付的接口进行二次开发。
开发的思路也很简单就是程序员这边做一个可以输入价格的界面,然后调用微信的公众号支付接口即可。
但是就这么简单的功能,我就卡了好几天。
出错的地方在于在线上微信内扫码打开上面的页面之后,点击表单提交,不论是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博客 ,转载时请注明出处及相应链接。

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何設計菜單中的虛線分割效果?在設計菜單時,菜名和價格的左右對齊通常不難實現,但中間的虛線或點如何...

網頁代碼編輯器中的HTML元素分析許多在線代碼編輯器允許用戶輸入HTML、CSS和JavaScript代碼。最近,有人提出了一...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中