項目中咱們集成了支付寶,用戶可使用支付寶來進行支付javascript
項目測試時,咱們固然也須要一套測試環境對支付流程進行測試java
若是咱們使用線上的支付寶配置進行測試,那麼咱們必須使用真實貨幣進行支付git
而且支付的金額會進入生產環境的支付寶綁定銀行卡中,形成諸多不便github
這裏,支付寶爲測試提供了一個沙箱環境,使咱們可使用虛擬貨幣進行支付測試spring
這篇文章就來詳細說一下支付寶沙箱環境的配置和使用typescript
首先建立支付寶配置文件類:express
public class AliPayConfig {
/** * 應用ID,您的APPID,收款帳號既是您的APPID對應支付寶帳號 */ private String appID;
/** * 商戶私鑰,您的PKCS8格式RSA2私鑰 */ private String merchantPrivateKey;
/** * 支付寶公鑰 */ private String alipayPublicKey;
/** * 簽名方式 */ private String signType;
/** * 網關 */ private String gatewayUrl;
/** * 編碼 */ private String charset;
/** * 異步通知地址 */ private String notifyUrl;
/** * 類型 */ private String format;
/** * 商戶號 */ private String sysServiceProviderId;
登錄支付寶開放平臺進行沙箱環境配置json
注意:沙箱環境的支付寶網關、公鑰私鑰都和正式不一樣,如今作的是沙箱環境的模擬支付
springboot
生成RSA密鑰:https://docs.open.alipay.com/291/106074上傳應用公鑰並獲取支付鑰:https://docs.open.alipay.com/291/105972/使用應用私鑰生成請求籤名:https://docs.open.alipay.com/291/105974/使用支付寶公鑰驗籤:https://docs.open.alipay.com/291/106074/下載密匙生成工具:https://docs.open.alipay.com/291/105971
而後生成密鑰:
ruby
生成公鑰 私鑰之後把公鑰上傳到支付寶,在開發者配置中點擊 RSA2(SHA256)密鑰
以下圖:
上傳成功以後點擊查看支付寶公鑰,注意這裏不要搞反了在配置文件中咱們要的是支付寶給咱們的公鑰不是咱們剛剛生成的公鑰!
配置成功,如今配置項目
打開配置文件添加配置:
商戶私鑰就是剛剛生成的私鑰支付寶公鑰不是咱們生成的公鑰,是支付寶給咱們的公鑰切記 否則簽名校驗會不經過
添加生成支付代碼,簡單建立支付沒有加參數和業務代碼:
public String payWithAliPay() throws AlipayApiException { /** * 業務代碼 */ String order_no = UUID.randomUUID().toString(); //77777777 String body = ""; String total_fee = "999.99"; //真實金錢 AlipayClient alipayClient = new DefaultAlipayClient(aliPayConfig.getGatewayUrl(), aliPayConfig.getAppID(), aliPayConfig.getMerchantPrivateKey(), aliPayConfig.getFormat(), aliPayConfig.getCharset(), aliPayConfig.getAlipayPublicKey(), aliPayConfig.getSignType()); //得到初始化的AlipayClient AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();//建立API對應的request類 JSONObject jsonObject = new JSONObject(); /** * 訂單號 */ jsonObject.put("out_trade_no", order_no); /** * 支付金額 */ jsonObject.put("total_amount", total_fee); jsonObject.put("body", ""); /** * 訂單主題 */ jsonObject.put("subject", "測試支付寶支付"); /** * 訂單支付有效時間 */ jsonObject.put("timeout_express", "90m"); request.setBizContent(jsonObject.toString()); request.setNotifyUrl(aliPayConfig.getNotifyUrl()); AlipayTradePrecreateResponse response = alipayClient.execute(request); System.err.print(response.getBody()); //根據response中的結果繼續業務邏輯處理 if (response.getMsg().equals("Success")) { String qrcode = response.getQrCode(); return qrcode;// return qrcode; } return "請求失敗";
}
返回結果:
https://qr.alipay.com/bax06188ujygeuazvcah0008
生成二維碼,這裏就不使用代碼生成了
下載沙箱支付寶進行掃描:
支付寶支付是須要回調的
推薦一個內網穿透工具Ngrok
使用方法:
把地址copy到項目的支付寶回調地址中便可
GIT地址:https://github.com/sunluomeng/springboot-alipay
有問題的話能夠在公衆號內留言,我會第一時間回覆
或者回復「內網」 得到工具
長按識別二維碼,瞭解更多
本文分享自微信公衆號 - 亂敲代碼(lqcoder)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。