支付寶手機支付接口


描述: 網站需要調用 支付寶支付功能------

這次介紹 手機網站支付

2017.3月支付寶手機網站支付升級2.0(認真看)     官方文檔

升級后,可以直接在網站中調起  移動端APP支付,這才是為什么升級的主要原因-----必備!

最新SDK---AopSdk.dll         下載 后,在你需要的項目中引用dll,服務端寫的很簡單,

 

//調用Ali封裝好的接口獲取支付鏈接
        IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", Config.partner2, Config.private_key2, "json", "1.0", "RSA2", "alipay_public_key", "utf-8", false);
        AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
        request.SetNotifyUrl(notifyUrl);
        request.SetReturnUrl(showUrl);
        request.BizContent = "{" +
        "    \'body\':\'"+ body +"\'," +
        "    \'subject\':\'"+ subject +"\'," +
        "    \'out_trade_no\':\'" + outTradeNo + "\'," +
        "    \'timeout_express\':\'30m\'," +
        "    \'total_amount\':" + totalFee + "," +
        "    \'product_code\':\'QUICK_WAP_PAY\'" +
        "  }";
        AlipayTradeWapPayResponse response = client.pageExecute(request);
        string form = response.Body;
     Response.Write(form);
獲取支付鏈接

form就是你需要的內容。 這里強調一下:官方SDK運行的結果 form 是一個FORM 表單Response.Write(form);

如果你需要得到一個 鏈接地址的話,需要對SDK修改,如下打開sdk源代碼找到這個方法。

    #region IAopClient Members
    public T pageExecute<T>(IAopRequest<T> request) where T : AopResponse
    {
        return pageExecute<T>(request, null, "POST"); ------改成 GET,獲取的就是 支付url,重新編譯引用。 } #endregion

 

開發中需要注意的配置事項:

1、添加應用---簽約手機網站支付

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.wTflnJ&treeId=60&articleId=104788&docType=1

2、配置密鑰(認真看)

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.hAazoO&treeId=60&articleId=104740&docType=1

 

步驟1:RSA公私鑰生成(保存好,后期開發用到 這個“應用公鑰”)

 用工具生成 2048(選非java的) 上傳到 【應用公鑰】,對應的私鑰 放到代碼中【商戶的私鑰】,同時得到 【支付寶公鑰】放到代碼中

這個搞不對的話,那會一直報錯 說什么 秘鑰不正確

生成方式一(推薦):使用支付寶提供的一鍵生成工具(內附使用說明)

步驟2:上傳公鑰&獲取支付寶公鑰(重要)

 

 

3、快速接入

內含JAVA、PHP、CSHARP(C#)三種編程語言。 下載各自DOME里面有介紹怎么使用,基本上都可以運行成功。

 

代碼中這些配置相當重要,配置不對就會導致 未將對象引用到實例這樣的錯誤。

 

 支付回調:

if (verifyResult)//驗證成功
                    {
                        bool isRefund = false;
                        string batch_no = string.Empty;
                        if(sPara.ContainsKey("out_biz_no"))
                        {
                            isRefund = true;
                            batch_no = sPara["out_biz_no"];
                        }

                        //商戶訂單號
                        string out_trade_no = Request.Form["out_trade_no"];
                        //支付寶交易號
                        string trade_no = Request.Form["trade_no"];
                        //交易狀態
                        string trade_status = Request.Form["trade_status"];
                        string buyer_id = Request.Form["buyer_id"];
                        string buyer_emial = Request.Form["buyer_logon_id"];
                        if (string.IsNullOrEmpty(out_trade_no))
                        {
                            throw new Exception("商戶訂單號不能為空");
                        }
                        out_trade_no, trade_no, trade_status));
                                               
                        if (trade_status == "TRADE_FINISHED")
                        {
                            //判斷該筆訂單是否在商戶網站中已經做過處理
                            //如果沒有做過處理,根據訂單號(out_trade_no)在商戶網站的訂單系統中查到該筆訂單的詳細,並執行商戶的業務程序
                            //請務必判斷請求時的total_fee、seller_id與通知時獲取的total_fee、seller_id為一致的
                            //如果有做過處理,不執行商戶的業務程序

                            //處理業務邏輯  

                            //注意:
                            //退款日期超過可退款期限后(如三個月可退款),支付寶系統發送該交易狀態通知
                        }
                        else if (trade_status == "TRADE_SUCCESS")
                        {
                            //判斷該筆訂單是否在商戶網站中已經做過處理
                            //如果沒有做過處理,根據訂單號(out_trade_no)在商戶網站的訂單系統中查到該筆訂單的詳細,並執行商戶的業務程序
                            //請務必判斷請求時的total_fee、seller_id與通知時獲取的total_fee、seller_id為一致的
                            //如果有做過處理,不執行商戶的業務程序

                            if (isRefund)
                            {
                                //處理退款業務---退款成功
                                
                            }
                            else
                            {
                                //處理訂單業務---付款成功
                                
                            }

                            //注意:
                            //付款完成后,支付寶系統發送該交易狀態通知
                        }
                        else if (trade_status == "TRADE_CLOSED")//未付款交易超時關閉,或支付完成后全額退款
                        {
                            if (isRefund)
                            {
                                //處理退款業務--退款成功
                                
                            }
                        }
                        Response.Write("success");  //必須輸出success
                    }
                    else//驗證失敗
                    {
                        Response.Write("failure");
                    }
支付回調

 

不懂的可以在下面留言~     希望大家可以順利開發完成。

  哥們 如果覺得對你有幫助了,不妨點個贊哈!  O(∩_∩)O謝謝。

                                                                                                      點我送 阿里雲幸運娟1         阿里雲幸運娟  2     阿里雲幸運娟  3    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM