1. 程式人生 > >支付寶手機頁面支付(沙箱環境進行測試)

支付寶手機頁面支付(沙箱環境進行測試)

日常記錄

跟之前接微信差不多,也是因為業務開始對接的別人的第三方,然後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+埠  的 形式的

一個同步頁面跳轉地址,也就是當你支付完成後,跳轉的地址,

一個是支付完成後,非同步通知地址

就養就完成了,直接把你的業務頁面進行訪問點選支付選擇支付寶,進行訪問方法直接丟擲頁面,就會喚起支付寶了,

用剛剛下的沙箱支付寶進行支付

只有測試完成後吧,所有的引數都換成生成的就可以了。