支付寶退款介面開發

2022-08-29 06:33:12 字數 1543 閱讀 5570

首先說明一下退款的步驟:

1:傳送退款請求到支付寶

2:支付寶會同步告訴你結果,成功或是失敗(注意只是你請求的成功與失敗.並不是退款的成功與失敗)

3:支付寶會再次傳送非同步請求告訴你結果,這個時候的結果就是退款的成功與失敗

下面說一下一些必要的引數:

privatekey:私鑰

publickey:公鑰

sign_type:簽名演算法(rsa2)

通過以上引數再加上編碼格式,可獲得alipayclient物件

alipaytraderefundrequest request = new alipaytraderefundrequest(); //請求物件

alipaytraderefundmodel refundmodel = new alipaytraderefundmodel(); //請求實體

//下面是請求的引數

out_trade_no:這個是支付是所產生的訂單號,是在支付時商戶自己生成的訂單號

trade_no:這個是支付時支付寶給你的訂單號,是支付寶那邊生成的

out_trade_no和trade_no只要有乙個就可以,我用的是out_trade_no,支付時商戶(也就是支付時自己生成的訂單號)訂單號

out_request_no:這個是用來標識你是一次退款還是部分退款,如果是一次退款就不用管,如果是部分退款,隨機生成就可以;

refund_amount:這個就是退款金額了,注意的是退款金額別大於你的付款金額就行,不然肯定是退款失敗

//將所需的請求引數新增到請求實體中

refundmodel.setouttradeno(out_trade_no); //新增商戶退款單號

refundmodel.setrefundamount(totalamount);//新增退款金額

string uuid=uuid.randomuuid().tostring().replaceall("-", "");//生成用來標識是一次性退款還是部分退款的標識

refundmodel.setoutrequestno(uuid); //新增標識,如果是一次全部退完,這一步就不用了

request.setbizmodel(refundmodel);//將請求實體新增到請求物件中

alipaytraderefundresponse res = client.execute(request); //傳送退款請求,獲得退款結果

//判斷請求是否傳送成功

if(res.issuccess())

//判斷退款是否成功

if(res.getfundchange().equals("y"))

說明:支付寶退款**位址和支付寶支付**位址是同乙個,如果退款需要用到**的,那個位址在你請求支付的時候應該就已經傳送給支付寶了,notify_url(**位址引數)           

注意:這裡不敢說是覺得對,如果怕不安全,可以通過多個引數來判斷.具體的請檢視這裡比我要說的詳細

3:支付寶支付時的請求方法是sdkexecute(),退款時的請求方法是execute().注意不要寫反了

這個是支付寶開發文件,一併放上,方便檢視

支付寶支付和退款

最近在寫支付寶支付的功能 開發環境 yii2 框架 yii2 php 版本 php 5.6.32 及以上 伺服器 nginx 線上系統 centos7.1 支付寶交易退款開發文件 alipay.trade.refund 統一收單交易退款介面 注意閱讀人家官方開頭的應用場景介紹1 首先,自然是順利把d...

支付寶退款總結

支付寶支付交易號 訂單號,退款金額,引數只要這兩個就能完成退款,不過支付寶的文件上面有的寫的可選的,即使是可選的,你也要寫上 支付寶閘道器 sign type 選擇 rsa2 input charset utf 8 網上說必須要大寫,這個沒試過 format json try alipaytrade...

支付寶退款操作

第一步 申請你的支付寶的一些東西 第三步 我用的是thinkphp5框架,把支付寶的dome放在 extend 資料夾裡面,支付寶dome的名字自己隨意取!第四步 開始進行 的編寫,首先我們引入到支付寶的一些檔案進來 require once extend path extend alipay ao...