日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

支付宝H5 与网页端支付开发

發(fā)布時(shí)間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 支付宝H5 与网页端支付开发 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在日常生活中,我們基本上都是進(jìn)行微信與支付寶的支付方式盡心支付,這種方式確實(shí)大大便利了我們的生活,那么如何在我們的產(chǎn)品中進(jìn)行微信與支付寶支付的植入開發(fā)呢?

?

我們先進(jìn)行支付寶的H5與網(wǎng)頁端支付開發(fā),這里只進(jìn)行支付寶支付的調(diào)用,關(guān)于具體的生產(chǎn)邏輯(例如訂單之類等)大家可以根據(jù)自己的邏輯處理添加;

支付寶的開發(fā)配置地址:https://openhome.alipay.com/

進(jìn)入開發(fā)者中心--->選擇研發(fā)服務(wù)進(jìn)行我們沙箱環(huán)境配置(測(cè)試環(huán)境)

沙箱環(huán)境會(huì)為我們提供如下信息進(jìn)行仿真測(cè)試

還有我們需要的:------里面的一些秘鑰,進(jìn)去之后支付寶會(huì)提供我們工具,傻瓜式生成就行

?

?

接下來我們進(jìn)行java程序的編碼:

(1)支付寶對(duì)于一些安全的加密操作已經(jīng)幫我們進(jìn)行了實(shí)現(xiàn),大大降低了我們開發(fā)時(shí)間需要我們Maven導(dǎo)入支付寶的sdk依賴 ,在官方的文檔中對(duì)于支付寶各種支付實(shí)現(xiàn)有很好的實(shí)例,我們可以下載下來進(jìn)行copy

<dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>3.1.0</version> </dependency>

(2),引入我們的配置類(紅色部分寫入自己在支付寶后臺(tái)中的配置)

package com.pay.alipay.util.config;import java.io.FileWriter; import java.io.IOException;/* **類名:AlipayConfig*功能:基礎(chǔ)配置類*詳細(xì):設(shè)置帳戶有關(guān)信息及返回路徑*修改日期:2017-04-05*說明:*以下代碼只是為了方便商戶測(cè)試而提供的樣例代碼,商戶可以根據(jù)自己網(wǎng)站的需要,按照技術(shù)文檔編寫,并非一定要使用該代碼。*該代碼僅供學(xué)習(xí)和研究支付寶接口使用,只是提供一個(gè)參考。*/public class AlipayConfig {// 應(yīng)用ID,您的APPID,收款賬號(hào)既是您的APPID對(duì)應(yīng)支付寶賬號(hào)public static String app_id ="2016091800539310";// 商戶私鑰,您的PKCS8格式RSA2私鑰public static String merchant_private_key = "很長很長的字符串";// 支付寶公鑰,查看地址:https://openhome.alipay.com/platform/keyManage.htm 對(duì)應(yīng)APPID下的支付寶公鑰。public static String alipay_public_key = "很長很長的字符串";// 服務(wù)器異步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問public static String notify_url = "http://68a71d94.ngrok.io/alipay/notify";// 頁面跳轉(zhuǎn)同步通知頁面路徑 需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),必須外網(wǎng)可以正常訪問public static String return_url = "http://localhost:80";// 簽名方式public static String sign_type = "RSA2";// 字符編碼格式public static String charset = "utf-8";// 支付寶網(wǎng)關(guān)//public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";//(沙箱環(huán)境)// public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";//(正式環(huán)境)// 支付寶網(wǎng)關(guān)public static String log_path = "C:\\";/** * 寫日志,方便測(cè)試(看網(wǎng)站需求,也可以改成把記錄存入數(shù)據(jù)庫)* @param sWord 要寫入日志里的文本內(nèi)容*/public static void logResult(String sWord) {FileWriter writer = null;try {writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");writer.write(sWord);} catch (Exception e) {e.printStackTrace();} finally {if (writer != null) {try {writer.close();} catch (IOException e) {e.printStackTrace();}}}}}

(3)編寫Controller層調(diào)用service層進(jìn)行獲取支付表單

@RequestMapping(value="/alipay",method =RequestMethod.GET)public void alipay(HttpServletRequest request,HttpServletResponse response) {String result =null;try {log.info("------->開始調(diào)用支付寶支付接口");//開始時(shí)間long starttime = System.currentTimeMillis();result =alipay.startAlipay();log.info("alipay支付請(qǐng)求結(jié)束,用時(shí):"+ (System.currentTimeMillis() - starttime) + "毫秒");}catch(Exception e) {e.printStackTrace();}response.setContentType("text/html;charset=utf8");response.getWriter().write(result);//直接將完整的表單html輸出到頁面 response.getWriter().flush();response.getWriter().close(); }

?(4)建立支付所需要的實(shí)體對(duì)象entity,我們將支付參數(shù)封裝在這里面,方便Json的轉(zhuǎn)換

package com.pay.entity;public class PayBizContent {//商戶訂單號(hào),商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號(hào),必填private String out_trade_no;//支付金額,,必填private String total_amount;//訂單名稱private String subject;//商品描述private String body;private String product_code;public String getProduct_code() {return product_code;}public void setProduct_code(String product_code) {this.product_code = product_code;}@Overridepublic String toString() {return "AlipayBizContent [out_trade_no=" + out_trade_no + ", total_amount=" + total_amount + ", subject="+ subject + ", body=" + body + ", timeout_express=" + timeout_express + "]";}//訂單失效時(shí)間,如果是十分鐘則是10m配置;private String timeout_express;public String getOut_trade_no() {return out_trade_no;}public void setOut_trade_no(String out_trade_no) {this.out_trade_no = out_trade_no;}public String getTotal_amount() {return total_amount;}public void setTotal_amount(String total_amount) {this.total_amount = total_amount;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}public String getTimeout_express() {return timeout_express;}public void setTimeout_express(String timeout_express) {this.timeout_express = timeout_express;}}

 

5)service 進(jìn)行調(diào)用微信SDK

?

public String startAlipay() {//獲得初始化的AlipayClient,微信SDK提供的,直接使用即可AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl,AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json",AlipayConfig.charset, AlipayConfig.alipay_public_key,AlipayConfig.sign_type);//wap端支付AlipayTradeWapPayRequest alipayRequest=new AlipayTradeWapPayRequest();//*****************pc端支付用這個(gè)****************////AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); alipayRequest.setReturnUrl(AlipayConfig.return_url);alipayRequest.setNotifyUrl(AlipayConfig.notify_url);PayBizContent aliContent =new PayBizContent();aliContent.setTotal_amount("1290");//金額aliContent.setSubject("辣條");//商品名稱aliContent.setOut_trade_no("180458382060");//商戶訂單,必須是唯一的aliContent.setTimeout_express("10m");//過期時(shí)間為10m;//**************pc端類型用這個(gè)**********************// aliContent.setProduct_code("FAST_INSTANT_TRADE_PAY");aliContent.setProduct_code("QUICK_WAP_WAY");JSONObject json =new JSONObject();alipayRequest.setBizContent(json.toJSONString(aliContent));log.info("放入支付寶接口中的參數(shù)--->"+alipayRequest.getBizContent());try {//成功后返回一個(gè)form表單字符串String form = alipayClient.pageExecute(alipayRequest).getBody();log.info("AlipayServiceImpl-----調(diào)用支付寶返回結(jié)果:"+form);return form;} catch (AlipayApiException e) {log.error("AlipayServiceImpl----->支付寶生成表單錯(cuò)誤");e.printStackTrace();return "調(diào)用失敗";}}

?

轉(zhuǎn)載于:https://www.cnblogs.com/iscys/p/9514539.html

總結(jié)

以上是生活随笔為你收集整理的支付宝H5 与网页端支付开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。