查詢資料發現,大多數的答案是:微信與支付寶屬於互相競爭的關系,是兩個不同的支付平台,目前是不支持互相通用的。微信小程序里面的程序軟件屬於內嵌於微信的服務,支持微信支付,但不能使用支付寶支付。也就是說:
①在小程序中生成支付寶二維碼的方式,不可行
②在小程序中內嵌H5網頁后調用支付寶支付接口,也不可行,由於支付協議
那么我通過誘導的方式直接在瀏覽器使用支付呢?也就是:
③通過點擊某個鏈接直接跳出小程序自動跳轉到系統瀏覽器的方式,也不可行,原因:
微信小程序沒辦法直接跳轉打開app、網址、手機瀏覽器,但是可以直接打開其他的小程序並跳轉到指定的小程序頁面
微信公眾號可以直接打開app或app指定頁面,可以直接打開手機瀏覽器並跳轉指定網址,可以打開小程序或進入小程序指定頁面。
但是,我就是想通過某種方式實現小程序通過支付寶支付呢?(嗯 其實也不是我軸了 公司要求)哪怕是曲里拐彎兒的方式,所以:
④通過誘導的方式在小程序中生成你需要在瀏覽器中打開使用支付頁面的鏈接地址,誘導用戶手動復制網址並手動切換到系統瀏覽器中使用。我自己的這個鏈接有公司小程序接口的前提下弄的,比如說http://xxxx.com/xxxx.aspx?參數=xxxx,復制這個鏈接到瀏覽器打開是一個信息展示的頁面,在這個頁面上有一個按鈕,通過這個按鈕再去請求支付寶支付的接口。類似於如圖:)
注意:使用此種方式傳參時,若需要傳遞包含中文的參數時,需要在小程序中傳參時,將地址進行二次編碼,比如:
url: encodeURI(encodeURI(that.data.url))
- 1
在瀏覽器中接收參數並在頁面顯示數據時:
string param= String.Empty;
if (Request.QueryString["param"] != null && Request.QueryString["param"].ToString() != "")
{
param= HttpUtility.UrlDecode(Request.QueryString["param"]);
}
- 1
- 2
- 3
- 4
- 5
然后就可以走支付寶支付的流程了,我使用的是PC端網站支付的接口(alipay.trade.page.pay),具體接入方式可參考官方文檔https://docs.open.alipay.com/270/105898/,
此方式的兩種支付方式:
1、根據瀏覽器自動檢測手機安裝了支付寶了的話就自動打開支付寶客戶端完成支付
2、要么就不使用支付寶客戶端的方式,就直接使用輸入支付寶賬號的支付密碼的方式直接在手機網頁里完成支付
如圖所示:
第二種網頁里輸入密碼支付的方式