1. 程式人生 > >支付寶H5支付

支付寶H5支付

一、應用開發前準備工作

1、去螞蟻金服開放平臺 https://open.alipay.com/platform/manageHome.htm,登入。

2、開發者中心-->網站&移動應用 點選


3、點選支付接入


4、建立應用,輸入名稱(注意:名稱中不要含有支付寶,阿里巴巴等字樣,親測aliPay也不行)


5、修改應用圖示(不要使用其他網站圖示,到時候會稽核不通過),選擇應用功能(我的只剩了手機網站支付)


6、下載簽名工具,https://docs.open.alipay.com/291/105971/,下載windows版,解壓,開啟.bat檔案,點選生成祕鑰,會生成商戶私鑰和應用祕鑰,並且會以文字的方式儲存起來。


7、回到開放平臺 的應用完善頁面,點選設定應用公鑰,接收驗證碼,輸入上一步生成的商戶應用公鑰,點選確定。然後會生成對應的支付寶公鑰,商戶應用公鑰和支付寶公鑰要明確區分開,開發程式碼中要使用到 支付寶公鑰  和 商戶應用私鑰


8、提交稽核,一天之後,稽核完成,顯示應用上線。此後,可以開始後臺程式碼開發。(正式專案需要商戶簽約)

二、支付寶支付程式碼開發

1、引入java SDK 依賴,

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>3.0.52.ALL</version>

        </dependency>

2、寫一個引數類,方便修改


3、申請個虛擬域名,保證支付回撥正常。(可以參考https://natapp.cn/article/natapp_newbie,內網穿透)

4、調起支付寶支付頁面,新建servlet,寫方法,out_trade_no 自定義訂單號,並且保證唯一,total_amount 支付金額,單位元,product_code 固定值,其他 是關於商品相關的屬性。

public void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse)

throws ServletException, IOException {
try {
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig2.URL, AlipayConfig2.APPID,
AlipayConfig2.RSA_PRIVATE_KEY, "json", "UTF-8", AlipayConfig2.ALIPAY_PUBLIC_KEY, "RSA2"); 
AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
JSONObject order = new JSONObject();
order.put("out_trade_no", "23242345rfg34534fertgedf");
order.put("subject", "songSir支付");
order.put("product_code", "QUICK_WAP_WAY");
order.put("body", "兒童泳裝|泳具");
order.put("total_amount", "2000.00");
order.put("subject", "競浪男童平角泳褲");
alipayRequest.setBizContent(order.toString());
/**
* 在公共引數中設定回跳和通知地址
*/
alipayRequest.setNotifyUrl(AlipayConfig2.NOTIFY_URL);
alipayRequest.setReturnUrl(AlipayConfig2.RETURN_URL);
String form = alipayClient.pageExecute(alipayRequest).getBody(); 
httpResponse.setContentType("text/html;charset=utf-8");
httpResponse.getWriter().write(form);
httpResponse.getWriter().flush();
httpResponse.getWriter().close();
} catch (AlipayApiException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

5、在電腦開啟谷歌瀏覽器,設定為手機瀏覽器模式,開啟連結 http://j5d2bz.natappfree.cc/aliPay/AliPay (其中,域名對應的我的localhost:8080,aliPay是專案名,最後面Alipay是servlet方法名)

此時,即可開啟支付寶登入頁面。在手機端訪問可以開啟支付寶客戶端。


6、回撥方法和支付完成的返回方法。

回撥方法,做一系列 訂單操作。支付完成返回頁可以是訂單詳情頁。