国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java實現(xiàn)沙箱測試環(huán)境支付寶支付(demo)和整合微信支付和支付寶支付到ssm環(huán)境全過程(附源碼)

channg / 2040人閱讀

摘要:設(shè)置和其中密鑰需要自己生成,和支付寶網(wǎng)關(guān)是已經(jīng)給好的,網(wǎng)關(guān)有字樣,表明是用于開發(fā)測試。上面就是將阿里支付寶支付整合到的全過程了,如果還有什么疑問,可以留言或者私信我源代碼下載鏈接密碼

文章有不當(dāng)之處,歡迎指正,如果喜歡微信閱讀,你也可以關(guān)注我的微信公眾號:好好學(xué)java,獲取優(yōu)質(zhì)學(xué)習(xí)資源。
一、支付寶測試環(huán)境代碼測試 1.下載電腦網(wǎng)站的官方demo:

下載地址:https://docs.open.alipay.com/...

2.下載解壓導(dǎo)入eclipse

readme.txt請好好看一下。

只有一個Java配置類,其余都是JSP。

3.配置AlipayConfig

(1).注冊螞蟻金服開發(fā)者賬號(免費,不像蘋果會收取費用)

注冊地址:https://open.alipay.com ,用你的支付寶賬號掃碼登錄,完善個人信息,選擇服務(wù)類型(我選的是自研)。

(2).設(shè)置app_id和gatewayUrl

其中密鑰需要自己生成,appID和支付寶網(wǎng)關(guān)是已經(jīng)給好的,網(wǎng)關(guān)有dev字樣,表明是用于開發(fā)測試。

(3).設(shè)置密鑰

點擊“生成方法”,打開界面如下:

下周密鑰生成工具,解壓打開后,選擇2048位生成密鑰:

如果沒有設(shè)置過,此時顯示文本是“設(shè)置應(yīng)用公鑰”,我這里是已經(jīng)設(shè)置過得。

設(shè)置方法,“打開密鑰文件路徑”:

復(fù)制應(yīng)用公鑰2048.txt中的內(nèi)容到點擊“設(shè)置應(yīng)用公鑰”的彈出框中,保存:

商戶私鑰(merchant_private_key)

復(fù)制 應(yīng)用私鑰2048.txt 中的內(nèi)容到merchant_private_key中。

支付寶公鑰(alipay_public_key)

點擊如上圖鏈接,復(fù)制彈出框里面的內(nèi)容到alipay_public_key。

如果這個設(shè)置不對,結(jié)果是:支付成功,但是驗簽失敗。

如果是正式環(huán)境,需要上傳到對應(yīng)的應(yīng)用中:

(4).服務(wù)器異步通知頁面路徑(notify_url)

如果沒有改名,修改IP和端口號就可以了,我自己的如下:

http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/notify_url.jsp

(5).頁面跳轉(zhuǎn)同步通知頁面路徑(return_url)

http://localhost:8080/alipay.trade.page.pay-JAVA-UTF-8/return_url.jsp
4.測試運行

測試用的支付寶買家賬戶可以在“沙箱賬號”這個頁面可以找到:

支付成功后,驗簽結(jié)果:

問題解決

由于我們使用的是沙箱測試環(huán)境,測試環(huán)境和正式上線的環(huán)境的網(wǎng)關(guān)是不一樣的,如果配置錯誤,會出現(xiàn),appid錯誤的問題。配置如下:

源代碼下載

鏈接: https://pan.baidu.com/s/1n6Gb... 密碼: zd9e

二、將支付寶支付整合到ssm框架 1、項目架構(gòu)

項目架構(gòu):spring+springmvc+mybatis

數(shù)據(jù)庫:mysql

部署環(huán)境:tomcat9.0

開發(fā)環(huán)境:jdk9、idea

支付:支付寶、微信

整合到ssm一樣,我們需要像沙箱測試環(huán)境一樣,需要修改支付的配置信息

2、數(shù)據(jù)庫代碼

主要包括以下的數(shù)據(jù)庫表:

user:用戶表

order:支付產(chǎn)生的訂單

flow:流水賬

product:商品表:用于模擬購買商品。

drop table if exists user;

/*==============================================================*/
/* Table: user                                                  */
/*==============================================================*/
create table user
(
   id                   varchar(20) not null,
   username             varchar(128),
   sex                  varchar(20),
   primary key (id)
);

alter table user comment "用戶表";


CREATE TABLE `flow` (
  `id` varchar(20) NOT NULL,
  `flow_num` varchar(20) DEFAULT NULL COMMENT "流水號",
  `order_num` varchar(20) DEFAULT NULL COMMENT "訂單號",
  `product_id` varchar(20) DEFAULT NULL COMMENT "產(chǎn)品主鍵ID",
  `paid_amount` varchar(11) DEFAULT NULL COMMENT "支付金額",
  `paid_method` int(11) DEFAULT NULL COMMENT "支付方式
            1:支付寶
            2:微信",
  `buy_counts` int(11) DEFAULT NULL COMMENT "購買個數(shù)",
  `create_time` datetime DEFAULT NULL COMMENT "創(chuàng)建時間",
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="流水表";


CREATE TABLE `orders` (
  `id` varchar(20) NOT NULL,
  `order_num` varchar(20) DEFAULT NULL COMMENT "訂單號",
  `order_status` varchar(20) DEFAULT NULL COMMENT "訂單狀態(tài)
            10:待付款
            20:已付款",
  `order_amount` varchar(11) DEFAULT NULL COMMENT "訂單金額",
  `paid_amount` varchar(11) DEFAULT NULL COMMENT "實際支付金額",
  `product_id` varchar(20) DEFAULT NULL COMMENT "產(chǎn)品表外鍵ID",
  `buy_counts` int(11) DEFAULT NULL COMMENT "產(chǎn)品購買的個數(shù)",
  `create_time` datetime DEFAULT NULL COMMENT "訂單創(chuàng)建時間",
  `paid_time` datetime DEFAULT NULL COMMENT "支付時間",
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="訂單表";


CREATE TABLE `product` (
  `id` varchar(20) NOT NULL,
  `name` varchar(20) DEFAULT NULL COMMENT "產(chǎn)品名稱",
  `price` varchar(11) DEFAULT NULL COMMENT "價格",
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT="產(chǎn)品表 ";

3、dao數(shù)據(jù)接口層

這里就不介紹了,這個只包括簡單的curd,可以使用通用mapper,或者逆向工程就行。

以訂單order為例給出:

public interface OrdersMapper {
    int countByExample(OrdersExample example);

    int deleteByExample(OrdersExample example);

    int deleteByPrimaryKey(String id);

    int insert(Orders record);

    int insertSelective(Orders record);

    List selectByExample(OrdersExample example);

    Orders selectByPrimaryKey(String id);

    int updateByExampleSelective(@Param("record") Orders record, @Param("example") OrdersExample example);

    int updateByExample(@Param("record") Orders record, @Param("example") OrdersExample example);

    int updateByPrimaryKeySelective(Orders record);

    int updateByPrimaryKey(Orders record);
}

注意:源代碼最后給出。

4、service層

同上,最后在項目源代碼里可見。

以訂單order為例給出:


/**
 * 訂單操作 service
 * @author ibm
 *
 */
public interface OrdersService {

    /**
     * 新增訂單
     * @param order
     */
    public void saveOrder(Orders order);
    
    /**
     * 
     * @Title: OrdersService.java
     * @Package com.sihai.service
     * @Description: 修改叮當(dāng)狀態(tài),改為 支付成功,已付款; 同時新增支付流水
     * Copyright: Copyright (c) 2017
     * Company:FURUIBOKE.SCIENCE.AND.TECHNOLOGY
     * 
     * @author sihai
     * @date 2017年8月23日 下午9:04:35
     * @version V1.0
     */
    public void updateOrderStatus(String orderId, String alpayFlowNum, String paidAmount);
    
    /**
     * 獲取訂單
     * @param orderId
     * @return
     */
    public Orders getOrderById(String orderId);
    
}
4、支付寶支付controller(支付流程)

支付流程圖

首先,啟動項目后,輸入http://localhost:8080/,會進(jìn)入到商品頁面,如下:

下面是頁面代碼

商品頁面(products.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  




    
        
    
    
    
        
        
                
產(chǎn)品編號 產(chǎn)品名稱 產(chǎn)品價格 操作
${p.id } ${p.name } ${p.price } 購買

點擊上面的購買,進(jìn)入到訂單頁面

填寫個數(shù),然后點擊生成訂單,調(diào)用如下代碼


根據(jù)SID(生成id的工具)等信息生成訂單,保存到數(shù)據(jù)庫。

進(jìn)入到選擇支付頁面

調(diào)用了如下代碼:

然后,我們選擇支付寶支付,進(jìn)入到了我們支付的頁面了,大功告成!

調(diào)用了如下代碼:

/**
     *
     * @Title: AlipayController.java
     * @Package com.sihai.controller
     * @Description: 前往支付寶第三方網(wǎng)關(guān)進(jìn)行支付
     * Copyright: Copyright (c) 2017
     * Company:FURUIBOKE.SCIENCE.AND.TECHNOLOGY
     *
     * @author sihai
     * @date 2017年8月23日 下午8:50:43
     * @version V1.0
     */
    @RequestMapping(value = "/goAlipay", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public String goAlipay(String orderId, HttpServletRequest request, HttpServletRequest response) throws Exception {

        Orders order = orderService.getOrderById(orderId);

        Product product = productService.getProductById(order.getProductId());

        //獲得初始化的AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);

        //設(shè)置請求參數(shù)
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        alipayRequest.setReturnUrl(AlipayConfig.return_url);
        alipayRequest.setNotifyUrl(AlipayConfig.notify_url);

        //商戶訂單號,商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號,必填
        String out_trade_no = orderId;
        //付款金額,必填
        String total_amount = order.getOrderAmount();
        //訂單名稱,必填
        String subject = product.getName();
        //商品描述,可空
        String body = "用戶訂購商品個數(shù):" + order.getBuyCounts();

        // 該筆訂單允許的最晚付款時間,逾期將關(guān)閉交易。取值范圍:1m~15d。m-分鐘,h-小時,d-天,1c-當(dāng)天(1c-當(dāng)天的情況下,無論交易何時創(chuàng)建,都在0點關(guān)閉)。 該參數(shù)數(shù)值不接受小數(shù)點, 如 1.5h,可轉(zhuǎn)換為 90m。
        String timeout_express = "1c";

        alipayRequest.setBizContent("{"out_trade_no":""+ out_trade_no +"","
                + ""total_amount":""+ total_amount +"","
                + ""subject":""+ subject +"","
                + ""body":""+ body +"","
                + ""timeout_express":""+ timeout_express +"","
                + ""product_code":"FAST_INSTANT_TRADE_PAY"}");

        //請求
        String result = alipayClient.pageExecute(alipayRequest).getBody();

        return result;
    }

這段代碼都可以在阿里支付的demo里面找到的,只需要復(fù)制過來,然后改改,整合到ssm環(huán)境即可。

上面就是將阿里支付寶支付整合到ssm的全過程了,如果還有什么疑問,可以留言或者私信我!

源代碼下載(ssm)

鏈接: https://pan.baidu.com/s/1NCPD... 密碼: 8qse

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71276.html

相關(guān)文章

  • 準(zhǔn)備接入個人支付接口?看完這幾款支付產(chǎn)品再做決定!

    摘要:支持的付款方式主打銀聯(lián)信用卡等,付款可以及時到賬。支持的付款方式主要是微信支付寶和京東支付。支持微信支付寶掃碼支付。 最近在開發(fā)自己的網(wǎng)站,想要接入一個第三方的支付平臺,但是處在創(chuàng)業(yè)初期,還沒能成立公司,所以沒有企業(yè)資質(zhì),想接入一款安全且性價比高的收款產(chǎn)品。以本人選擇困難癥再加點小糾結(jié)的個性,對現(xiàn)有的一些第三方支付接口做了一個對比,希望能給有相同需要的和正在尋求相關(guān)解決方案的朋友提供一...

    SimonMa 評論0 收藏0
  • 準(zhǔn)備接入個人支付接口?看完這幾款支付產(chǎn)品再做決定!

    摘要:支持的付款方式主打銀聯(lián)信用卡等,付款可以及時到賬。支持的付款方式主要是微信支付寶和京東支付。支持微信支付寶掃碼支付。 最近在開發(fā)自己的網(wǎng)站,想要接入一個第三方的支付平臺,但是處在創(chuàng)業(yè)初期,還沒能成立公司,所以沒有企業(yè)資質(zhì),想接入一款安全且性價比高的收款產(chǎn)品。以本人選擇困難癥再加點小糾結(jié)的個性,對現(xiàn)有的一些第三方支付接口做了一個對比,希望能給有相同需要的和正在尋求相關(guān)解決方案的朋友提供一...

    livem 評論0 收藏0
  • 不用申請服務(wù)號就可以開發(fā)微信支付/支付/QQ錢包支付:直接可用的代碼+demo

    摘要:我們知道,開發(fā)微信支付需要申請服務(wù)號并且需要一系列的資料才可以開通。怪麻煩的,現(xiàn)在我們可以用第三方開放的免簽約微信支付接口,支付寶接口和錢包接口,實現(xiàn)實時到帳的微信支付開發(fā)。 我們知道,開發(fā)微信支付需要申請服務(wù)號并且需要一系列的資料才可以開通。怪麻煩的,現(xiàn)在我們可以用第三方開放的免簽約微信支付接口,支付寶接口和QQ錢包接口,實現(xiàn)實時到帳的微信支付開發(fā)。 我們只需要在第三方的微信支付免簽...

    Zhuxy 評論0 收藏0
  • 不用申請服務(wù)號就可以開發(fā)微信支付/支付/QQ錢包支付:直接可用的代碼+demo

    摘要:我們知道,開發(fā)微信支付需要申請服務(wù)號并且需要一系列的資料才可以開通。怪麻煩的,現(xiàn)在我們可以用第三方開放的免簽約微信支付接口,支付寶接口和錢包接口,實現(xiàn)實時到帳的微信支付開發(fā)。 我們知道,開發(fā)微信支付需要申請服務(wù)號并且需要一系列的資料才可以開通。怪麻煩的,現(xiàn)在我們可以用第三方開放的免簽約微信支付接口,支付寶接口和QQ錢包接口,實現(xiàn)實時到帳的微信支付開發(fā)。 我們只需要在第三方的微信支付免簽...

    luffyZh 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<