支付寶退款流程


當交易發生之后一段時間內,由於買家或者賣家的原因需要退款時,賣家可以通過退款接口將支付款退還給買家,支付寶將在收到退款請求並且驗證成功之后,按照退款規則將支付款按原路退到買家帳號上。 交易超過約定時間(簽約時設置的可退款時間)的訂單無法進行退款 支付寶退款支持單筆交易分多次退款,多次退款需要提交原支付訂單的商戶訂單號和設置不同的退款單號。一筆退款失敗后重新提交,要采用原來的退款單號。總退款金額不能超過用戶實際支付金額

官方文檔:https://docs.open.alipay.com/api_1/alipay.trade.refund

參考代碼:

from alipay import AliPay
from urllib2 import  urlopen
import os
class AliPayNew(AliPay):
    def api_alipay_trade_refund(self, refund_amount, out_trade_no=None, trade_no=None, **kwargs):#原方法存故障,重寫該方法
        biz_content = {
            "refund_amount": refund_amount
        }
        biz_content.update(**kwargs)
        if out_trade_no:
            biz_content["out_trade_no"] = out_trade_no
        if trade_no:
            biz_content["trade_no"] = trade_no
        data = self.build_body("alipay.trade.refund", biz_content)
        url = self._gateway + "?" + self.sign_data(data)
        raw_string = urlopen(url, timeout=15).read().decode("utf-8")
        return raw_string


ssh_keys_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "ssh_keys")
app_private_key_path = os.path.join(ssh_keys_path, "app_private_key.pem") #指定證書路徑
alipay_public_key_path = os.path.join(ssh_keys_path, "app_public_key.pem")

appid = "AliPayAPPID"
alipay = AliPayNew(appid=appid, app_private_key_path = app_private_key_path,
                alipay_public_key_path = alipay_public_key_path, sign_type = 'RSA2',
                app_notify_url = None) 

notify_url = "http://{0}/app/alipayrefund/callback" #回調函數URL
order_string = alipay.api_alipay_trade_refund(
    out_trade_no="out_trade_no",
    refund_amount="refund_amount",
    notify_url=notify_url
)
print order_string #打印結果

#上面的相關參數可以支付寶開發文檔找到,填寫相應參數即可

 


免責聲明!

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



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