
chaot1c
-
Posts
6 -
Joined
-
Last visited
Posts posted by chaot1c
-
-
Okay, here's the flow of how this works:
- CS:GO client sends a GCStorePurchaseInit to the GC with the items you want to buy
- You get back a GCStorePurchaseInitResponse containing a result (1 = OK) and a transaction ID (64-bit, even though it can currently fit into 32 bits)
- Concurrently, you get a ClientMicroTxnAuthRequest message via Steam. Discard the first byte of the payload (seems to be 1 in the dump you sent, not sure if that's always the case or what the significance of it is), then decode the remainder of the payload as Binary KeyValues (
require('binarykvparser').parse(payload.toBuffer().slice(1))
). The interesting stuff in there is the total/BillingTotal and transID (orderid is there if you want to make sure it matches what the GC sent back). - Grab the transID and send it back in ClientMicroTxnAuthorize (little-endian encoded, as always) and append a 32-bit value of 2 (unsure what the significance of this is, or if it ever changes from 2. Could perhaps be an authorization result, where 1 is deny or something).
- You'll get back ClientMicroTxnAuthorizeResponse with a payload containing a 32-bit eresult value (1 = OK), and a 1-byte unknown value of 0. If successful,
- If successful, send GCStorePurchaseFinalize to the GC containing the transaction ID you from the GC before (not transID) to get your items.
Big thanks, on 4 step i've got a buffer for request: 146A5F50F269A90E02000000 and noticed that F269A90E (Int32: 245983730) doesn't change on ClientMicroTxnAuthorize and txn_id (on GCStorePurchaseInitResponse) equal to orderid, but still I didn't get the response after request, I'm using node-steam
var payload = new ByteBuffer(0, ByteBuffer.LITTLE_ENDIAN); payload.writeUInt32(data.transID.toInt()); // data.transID.toInt() == 1144076083 payload.append('F269A90E02000000', 'hex'); // == 371DB34FF269A90E02000000 steamClient.send({ msg: EMsg.ClientMicroTxnAuthorize, proto: {} }, payload.buffer);
- headshot1k and wxz123
-
1
-
1
-
My old GCStorePurchaseFinalize dump became unreadable, but I attached the older. (ID 81, calls with txn_id after success ClientMicroTxnAuthorizeResponse).
I would like to share this function after the finish
Would you mind sending me your NetHook dump? It would probably be a good idea to zip it up, encrypt the zip, attach the zip to a reply here, and PM me the password. You can't attach files to PMs.
Also, for what purpose are you doing this?
-
Hello, I'm trying to do in-game purchase in CS:GO through GameCoordinator, but it returns ClientMicroTxnAuthRequest (5504) Message after my GC k_EMsgGCStorePurchaseInit (2510) request. I've dumped all protos from Steam, but didn't found how to do this with ClientMicroTxnAuthorize (5505). In traffic dump I have the payload: 673C0250F269A90E02000000, but can't decode this. It's a bytebuffer.
-
502 = Bad Gateway
Have you tried again after some time?
httpRequestPost returns only 502, but there is a message:
{ "success": false, "message": "There was a problem listing your item. Refresh the page and try again." }
-
Getting a error when trying to execute this code:
community.httpRequestPost('https://steamcommunity.com/market/sellitem/', { form: { sessionid: community.getSessionID(), appid: item.appid, contextid: item.contextid, assetid: item.assetid, amount: 1, price: 10000 // 10000 == $100 }, headers: headers, json: true }, (err, response, json) => { if(err) { console.log(`Sell item HTTPREQUESTPOST error: ${err.toString()}`); return; } console.log(json); }, "steamcommunity");
My headers are:
'Host': 'steamcommunity.com','Origin': 'https://steamcommunity.com''Referer': 'https://steamcommunity.com/market/''User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36','X-Prototype-Version': '1.7','X-Requested-With': 'XMLHttpRequest',Cookies: (first 4 getting from node-steam-tradeoffer-manager)steamLoginsteamLoginSecuresteamMachineAuthsessionidwebTradeEligibility (from your's reddit post)strInventoryLastContext=730_2Steam_Language=englishI've tried to do request from REST Client with client's account cookies, headers, and it works (from client, not from node).
ClientMicroTxnAuthRequest (5504)
in General
Posted · Edited by chaot1c
Thank you for your help, I did that and it was successful, but on 4 step i needed 32-bit value of 1 (1 = OK, 2 = Fail) so here it is:
Where Language is language.js from node-globaloffensive and Steam is node-steam with pull request (https://github.com/seishun/node-steam/pull/397). Would you adapt this to your node-globaloffensive?