支付寶手機頁面支付(沙箱環境進行測試)
日常記錄
跟之前接微信差不多,也是因為業務開始對接的別人的第三方,然後app停掉後對方也給停了,產品讓重新接支付寶官方這是背景
說句實話,對接支付寶比對接微信的簡單太多了,整合支付寶的SDK,非常快就完事了
下面開始
先訪問支付寶的官網,進行登入然後點選開發者平臺,向下找這個按鈕
繼續點選,(如果已經開通了生活號,也可以用你當前的生活號,就不用配置獲取openid的那些步驟了)
選自選型,起一個名字點選建立
因為我這已經建立了,所以你們需要上傳一個圖示等,我們接的是手機網站支付,所以看一下功能列表如果用就不用管了,如果沒有進點選新增功能找到並新增。
繼續、點選應用資訊,進行配置你的生產環境這配置好生產的,一會咱們用沙箱環境進行測試
就點就比微信好太多了,因為微信不支援在測試環境進行除錯,必須放到伺服器上面去,MMP。
應用閘道器: 其實是不用填寫的
授權回撥 :這個是獲取openid用的,如果你只做支付的話,這個也根本用不到的。
用到的只有RSA的公鑰。
繼續向下
點選連結 :https://docs.open.alipay.com/291/105971/ 這是支付寶的官方生產工具,你也可以自己生成。
根據你自己的系統下載好、解壓、開啟。進行生成
生成好後,點選檢視公鑰--》修改 公鑰
然後點選檢視支付寶的公鑰。,儲存好你的私鑰。儲存好支付寶公鑰
為什麼設定公鑰呢,是為了我們用私鑰加密好資料,支付寶官方,用我們的公鑰進行驗籤,判斷是不是我們的請求資料有沒有被惡意修改
為啥檢視支付公鑰呢,是為了,支付回撥的時候,我們進行驗籤是不是支付寶的請求資料有沒有被惡意修改
開發環境我們配置好了,
現在開始用沙箱環境進行測試
測試之前呢,還得需要把上面的公私鑰配置還得弄一遍,因為是測試環境嘛。
這是沙箱環境文件 https://docs.open.alipay.com/200/105311
這是沙箱環境地址 https://openhome.alipay.com/platform/appDaily.htm
把生成的公鑰進行修改
把支付寶公鑰進行儲存
把appid 記好
要想用沙箱環境,你還得下一個支付寶,這個支付寶可不是正版,這個是沙箱支付寶
下載好後 你還需要登入,點選沙箱賬號進行檢視
用賬號進行登入
然後在下載支付寶官網的SDK 看你是什麼語言,我這是java 的
https://docs.open.alipay.com/203/105910/
把jar匯入到你的工程裡 alipay-sdk-java-3.3.0.jar
然後把下面程式碼放到你邏輯裡
注意一下
正式的請求地址是
https://openapi.alipay.com/gateway.do
沙箱的請求地址是
https://openapi.alipaydev.com/gateway.do
public void doPost(HttpServletRequest httpRequest,
HttpServletResponse httpResponse) throws ServletException, IOException {
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, 你的私鑰, "json", "UTF-8", 支付寶的公鑰, "RSA2"); //獲得初始化的AlipayClient
AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();//建立API對應的request
alipayRequest.setReturnUrl("這是填寫你支付完成後頁面跳轉到哪個頁面的地址");
alipayRequest.setNotifyUrl("這個是支付成功後非同步通知的地址");//在公共引數中設定回跳和通知地址
alipayRequest.setBizContent("{" +
" \"out_trade_no\":\"20150320010101002\"," +
" \"total_amount\":\"88.88\"," +
" \"subject\":\"Iphone6 16G\"," +
" \"product_code\":\"QUICK_WAP_PAY\"" +
" }");//填充業務引數
String form="";
try {
form = alipayClient.pageExecute(alipayRequest).getBody(); //呼叫SDK生成表單
} catch (AlipayApiException e) {
e.printStackTrace();
}
httpResponse.setContentType("text/html;charset=" + CHARSET);
httpResponse.getWriter().write(form);//直接將完整的表單html輸出到頁面
httpResponse.getWriter().flush();
httpResponse.getWriter().close();
}
現在是沙箱環境,所以這兩個地址是可以填寫 ip+埠 的 形式的
一個同步頁面跳轉地址,也就是當你支付完成後,跳轉的地址,
一個是支付完成後,非同步通知地址
就養就完成了,直接把你的業務頁面進行訪問,點選支付,選擇支付寶,進行訪問方法直接丟擲頁面,就會喚起支付寶了,
用剛剛下的沙箱支付寶進行支付,
只有測試完成後吧,所有的引數都換成生成的就可以了。