Last active
March 19, 2020 07:51
-
-
Save samnang/ad45122a7cdf50d5eebaba355f1126d4 to your computer and use it in GitHub Desktop.
Bongloy Agent Network Code Snippits
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "net/http" | |
require "uri" | |
require "jwt" | |
jwt_payload = { | |
"api_token": "[your api token]", | |
"timestamp": Time.now.to_i | |
} | |
private_key = OpenSSL::PKey::RSA.new(File.read("private_key.pem")) | |
jwt = JWT.encode(jwt_payload, private_key, 'RS256') | |
uri = URI.parse("https://agent-network-sandbox.bongloy.com/v1/transfers") | |
request = Net::HTTP::Post.new(uri.request_uri) | |
request["Content-Type"] = "application/vnd.api+json" | |
request["Authorization"] = "Bearer #{jwt}" | |
request.body = File.read("payload.json") | |
http = Net::HTTP.new(uri.host, uri.port) | |
http.use_ssl = true | |
response = http.request(request) | |
p response.body |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.net.URI; | |
import java.net.http.*; | |
import java.net.http.HttpRequest.BodyPublishers; | |
import java.net.http.HttpResponse.BodyHandlers; | |
import java.nio.file.*; | |
import java.security.*; | |
import java.security.interfaces.RSAPrivateKey; | |
import java.security.spec.*; | |
import java.time.Instant; | |
import java.util.Base64; | |
import com.auth0.jwt.JWT; | |
import com.auth0.jwt.algorithms.Algorithm; | |
class AgentNetworkApp { | |
public static void main(String[] args) throws Exception { | |
long unixTimestamp = Instant.now().getEpochSecond(); | |
String payload = Files.readString(Paths.get("payload.json")); | |
Algorithm algorithm = Algorithm.RSA256(null, (RSAPrivateKey) getPrivateKey()); | |
String token = JWT.create() | |
.withClaim("api_token", "[your api token]") | |
.withClaim("timestamp", unixTimestamp) | |
.sign(algorithm); | |
HttpClient client = HttpClient.newHttpClient(); | |
HttpRequest request = HttpRequest.newBuilder() | |
.uri(URI.create("https://agent-network-sandbox.bongloy.com/v1/transfers")) | |
.header("Content-Type", "application/vnd.api+json") | |
.header("Authorization", "Bearer " + token) | |
.POST(BodyPublishers.ofString(payload)) | |
.build(); | |
HttpResponse<String> response = client.send(request, BodyHandlers.ofString()); | |
System.out.println(response.statusCode()); | |
System.out.println(response.body()); | |
} | |
private static PrivateKey getPrivateKey() throws Exception { | |
String privateKeyContent = Files.readString(Paths.get("private_key.pem")); | |
privateKeyContent = privateKeyContent | |
.replaceAll("\\n", "") | |
.replace("-----BEGIN PRIVATE KEY-----", "") | |
.replace("-----END PRIVATE KEY-----", ""); | |
PKCS8EncodedKeySpec keySpecPKCS8 = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKeyContent)); | |
return KeyFactory.getInstance("RSA").generatePrivate(keySpecPKCS8); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"data": { | |
"type": "transfer", | |
"attributes": { | |
"amount": 10000, | |
"currency": "USD", | |
"destination_account_number": "002002965", | |
"metadata": { | |
"foobar": "foobar" | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-----BEGIN PRIVATE KEY----- | |
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 | |
8mFFhvnbdcVIui7wwxk4cyaTSedXzKQ= | |
-----END PRIVATE KEY----- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment