訊息佇列處理微信支付超時訂單

2021-10-10 09:13:50 字數 2306 閱讀 1089

1.配置交換機、佇列

rabbitmqconfig
/**

*      * 延時佇列交換機

*      * 注意這裡的交換機型別:customexchange

*      *

*      * @return

*      

*/@bean

public customexchange delayexchange()

/**

* * 延時佇列

* * @return    

*/@bean

public queue delayorderqueue()

/** *      * 給延時佇列繫結交換機

*      *

*      * @return

*      

*/@bean

public binding orderdelaybinding()

2.支付介面呼叫,建立訂單的時候設定訂單過期時間

public object call() throws exception 

mapmap = this.unifiedorder();

if (map == null)

if (!"success".equals(map.get("return_code")))

if (!(map.get("sign")).equals(signutil.getsign(map, payconfig.getkey()))) ", "驗籤未通過");

return apiresult;

}if (!"success".equals(map.get("result_code"))) ", map.get("err_code_des"));

return apiresult;

}//建立訂單

this.createorder(map);

//返回預支付引數

string prepay_id = (string) map.get("prepay_id");

mapresult = new hashmap<>();

result.put("noncestr", numberutil.getrandomstr(16));

result.put("package", "prepay_id=" + prepay_id);

result.put("signtype", "md5");

result.put("timestamp", system.currenttimemillis() / 1000);

result.put("sign", signutil.getsign(result, payconfig.getkey()));

logger.info("預支付請求介面返回引數:{}", jsonutil.tojson(result));

result.put("orderid", orderid);

//第乙個引數是前面rabbitmqconfig的交換機名稱 第二個引數的路由名稱 第三個引數是傳遞的引數 第四個引數是配置屬性

template.convertandsend("delay_exchange", "order", orderno, message -> );

apiresult.succ(result);

return apiresult;

}

3.建立監聽佇列,監聽指定型別的訊息

//使用者超過三分鐘未支付刪除訂單

@rabbitlistener(queues = "delay_order")

public void consumeordermessage(string orderno, @header(amqpheaders.delivery_tag) long tag, channel channel) ", orderno);

try

if (activitypayenum.wait_paying.getvalue().equals(order.getorderstatus())) else ", orderno);

channel.basicack(tag, true);

}} catch (exception e) ", e.getmessage());

//重新放回到佇列裡面

try catch (ioexception | interruptedexception e1) " + e.getmessage());

}e.printstacktrace();

}}

php 支付寶訂單查詢 微信支付開發訂單查詢例項

因為某一方技術的原因,可能導致商戶在預期時間內都收不到最終支付通知,此時商戶可以通過該api來查詢訂單的詳細支付狀態。訂單查詢api的url為 package out trade no 11122 partner 1900090055 sign 4e8d0df3da0c3d0df38f timest...

微信支付處理邏輯

介面環境 microsoft.net framework v4.0 xml解析 pbdom函式,參考pbdom 解析和生成xml u19xiaolr的部落格 csdn部落格 資料庫表 支付記錄表 record weixin 主要字段 自增長id 訂單流水號 支付狀態 支付時間 商戶訂單號 總金額 折...

PHP微信支付訂單通用查詢方法

res this orderquery request order num if res return code success elseif res return code fail 檢查訂單是否完成 addtime 2020年9月9日 16 58 36 param type out trade ...