Now, you'll want your script to create a POST request to https://api.queye.co/pay/create/index.php.

If you followed the previous steps, you would already have the vendor key and vendor secret. You'll also need a name for your product and you'll need to create a return URL, however this is optional. Create a product in one of our available currencies (see Supported Currencies) and name your price divided by 100 ($2.99 becomes "299", $41.76 becomes "4176").

Under the agreement you signed when you became a vendor, you cannot charge the user an additional fee for using Queye Pay over another service.

import requests

headers = {
    "x-key": "your_vendor_key",
    "x-secret": "your_secret_key",
    "x-name": "Test Product",
    "x-currency": "usd",
    "x-price": "299",
    "x-return": "https://yourdomain.com/thank-you"
}

response = requests.post("https://api.queye.co/pay/create/index.php", headers=headers)
fetch("https://api.queye.co/pay/create/index.php", {
  method: "POST",
  headers: {
    "x-key": "your_vendor_key",
    "x-secret": "your_secret_key", // WARNING: DO NOT EXPOSE YOUR SECRET KEY TO THE CLIENT
    "x-name": "Test Product",
    "x-currency": "usd",
    "x-price": "299",
    "x-return": "https://yourdomain.com/thank-you"
  }
})
.then(response => response.text())
$ch = curl_init("https://api.queye.co/pay/create/index.php");

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "x-key: your_vendor_key",
        "x-secret: your_secret_key",
        "x-name: Test Product",
        "x-currency: usd",
        "x-price: 299",
        "x-return: https://yourdomain.com/thank-you"
    ]
]);

$response = curl_exec($ch);
curl_close($ch);
curl -X POST https://api.queye.co/pay/create/index.php \
  -H "x-key: your_vendor_key" \
  -H "x-secret: your_secret_key" \
  -H "x-name: Test Product" \
  -H "x-currency: usd" \
  -H "x-price: 299" \
  -H "x-return: https://yourdomain.com/thank-you"
const https = require("https");

const options = {
  hostname: "api.queye.co",
  path: "/pay/create/index.php",
  method: "POST",
  headers: {
    "x-key": "your_vendor_key",
    "x-secret": "your_secret_key",
    "x-name": "Test Product",
    "x-currency": "usd",
    "x-price": "299",
    "x-return": "https://yourdomain.com/thank-you"
  }
};

let data = "";
const req = https.request(options, res => {
  res.on("data", chunk => data += chunk);
  res.on("end", () => {
    // handle data
  });
});
req.end();
package main

import (
  "fmt"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("POST", "https://api.queye.co/pay/create/index.php", nil)
  req.Header.Set("x-key", "your_vendor_key")
  req.Header.Set("x-secret", "your_secret_key")
  req.Header.Set("x-name", "Test Product")
  req.Header.Set("x-currency", "usd")
  req.Header.Set("x-price", "299")
  req.Header.Set("x-return", "https://yourdomain.com/thank-you")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    panic(err)
  }
  defer resp.Body.Close()
using System.Net.Http;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.queye.co/pay/create/index.php");

request.Headers.Add("x-key", "your_vendor_key");
request.Headers.Add("x-secret", "your_secret_key");
request.Headers.Add("x-name", "Test Product");
request.Headers.Add("x-currency", "usd");
request.Headers.Add("x-price", "299");
request.Headers.Add("x-return", "https://yourdomain.com/thank-you");

var response = await client.SendAsync(request);
import java.io.*;
import java.net.*;

public class PaymentRequest {
  public static void main(String[] args) throws Exception {
    URL url = new URL("https://api.queye.co/pay/create/index.php");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("POST");

    con.setRequestProperty("x-key", "your_vendor_key");
    con.setRequestProperty("x-secret", "your_secret_key");
    con.setRequestProperty("x-name", "Test Product");
    con.setRequestProperty("x-currency", "usd");
    con.setRequestProperty("x-price", "299");
    con.setRequestProperty("x-return", "https://yourdomain.com/thank-you");

    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
    String inputLine, response = "";
    while ((inputLine = in.readLine()) != null)
      response += inputLine;
    in.close();
  }
}
require 'net/http'
require 'uri'

uri = URI("https://api.queye.co/pay/create/index.php")
req = Net::HTTP::Post.new(uri)
req["x-key"] = "your_vendor_key"
req["x-secret"] = "your_secret_key"
req["x-name"] = "Test Product"
req["x-currency"] = "usd"
req["x-price"] = "299"
req["x-return"] = "https://yourdomain.com/thank-you"

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(req)
end

A product key will be returned. Store this as a variable to redirect the user.

$product_key = $response;
product_key=$(curl ...)
let product_key = data;
var product_key = resp.Status
  fmt.Println(product_key)
}
var product_key = await response.Content.ReadAsStringAsync();
String product_key = response;
  }
}
product_key = res.body
product_key = response.text
.then(product_key => {
  // store or use product_key
});

Next: Redirecting the user.