0

Update web experience profile

by
Published Apr 8, 2025

Updates a web experience profile, by ID. In the JSON request body, specify the profile details. If your request omits any profile parameters, any previously set values for those parameters are removed.

Script paypal Verified

The script

Submitted by hugo697 Bun
Verified 428 days ago
1
//native
2
type Paypal = {
3
  clientId: string;
4
  clientSecret: string;
5
};
6

7
async function getToken(auth: Paypal): Promise<string> {
8
  const url = new URL(`https://api-m.paypal.com/v1/oauth2/token`);
9
  const response = await fetch(url, {
10
    method: "POST",
11
    headers: {
12
      Authorization: `Basic ${btoa(`${auth.clientId}:${auth.clientSecret}`)}`,
13
    },
14
    body: new URLSearchParams({
15
      grant_type: "client_credentials",
16
    }),
17
  });
18
  if (!response.ok) {
19
    const text = await response.text();
20
    throw new Error(`Could not get token: ${response.status} ${text}`);
21
  }
22
  const json = await response.json();
23
  return json.access_token;
24
}
25
/**
26
 * Update web experience profile
27
 * Updates a web experience profile, by ID. In the JSON request body, specify the profile details. If your request omits any profile parameters, any previously set values for those parameters are removed.
28
 */
29
export async function main(
30
  auth: Paypal,
31
  id: string,
32
  body: {
33
    id?: string;
34
    name: string;
35
    temporary?: false | true;
36
    flow_config?: {
37
      landing_page_type?: "login" | "billing";
38
      bank_txn_pending_url?: string;
39
      user_action?: "COMMIT";
40
      return_uri_http_method?: "GET" | "POST";
41
    };
42
    input_fields?: { no_shipping?: number; address_override?: number };
43
    presentation?: {
44
      brand_name?: string;
45
      logo_image?: string;
46
      locale_code?: string;
47
    };
48
  },
49
) {
50
  const token = await getToken(auth);
51
  const url = new URL(
52
    `https://api-m.paypal.com/v1/payment-experience/web-profiles/${id}`,
53
  );
54

55
  const response = await fetch(url, {
56
    method: "PUT",
57
    headers: {
58
      "Content-Type": "application/json",
59
      Authorization: "Bearer " + token,
60
    },
61
    body: JSON.stringify(body),
62
  });
63
  if (!response.ok) {
64
    const text = await response.text();
65
    throw new Error(`${response.status} ${text}`);
66
  }
67
  return await response.json();
68
}
69