Tutorial

Ikuti langkah-langkah dalam tutorial ini untuk mengintegrasikan aplikasi web dengan Google Pay API, dan mengonfigurasinya untuk menerima kartu pembayaran.

Langkah 1: Tentukan versi Google Pay API Anda

Deklarasikan versi Google Pay API yang digunakan situs Anda. Versi utama dan minor diperlukan di kolom setiap objek yang diteruskan, dan disertakan dalam respons.

Contoh kode berikut menunjukkan versi API yang dideklarasikan:

const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

Langkah 2: Minta token pembayaran untuk penyedia jasa pembayaran Anda

Google mengenkripsi informasi tentang kartu yang dipilih pembayar untuk pemrosesan yang aman oleh penyedia jasa pembayaran.

const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    'gateway': 'example',
    'gatewayMerchantId': 'exampleGatewayMerchantId'
  }
};

Ganti example dan exampleGatewayMerchantId dengan nilai yang sesuai untuk penyedia jasa pembayaran Anda. Gunakan tabel berikut untuk menemukan nilai gateway dan gatewayMerchantId tertentu untuk penyedia jasa pembayaran Anda:

Gateway Parameter dan dokumen
9Pay
  "gateway": "ninepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

91APP PAYMENTS
  "gateway": "payments91app"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

A360
  "gateway": "a360"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

A-IT
  "gateway": "aitecomm"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

ABA PayWay
  "gateway": "ababank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

accept.blue
  "gateway": "acceptblue"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

ACI
  "gateway": "aciworldwide"
  "gatewayMerchantId": "YOUR_ENTITY_ID"

Dokumen developer

ACpay
  "gateway": "acpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Acquired.com
  "gateway": "acquired"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Adyen
  "gateway": "adyen"
  "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"

Dokumen developer

African Payment Solution (PTY) Ltd t/a LekkaPay
  "gateway": "lekkapay"
  "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"

Dokumentasi developer

AI Fintech
  "gateway": "aifintech"
  "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"

Dokumentasi developer

Airba Pay
  "gateway": "airbapay""
  "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"

Dokumentasi developer

Airvend
  "gateway": "airvend"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Airwallex
  "gateway": "airwallex"
  "gatewayMerchantId": "YOUR_MERCHANT_ACCOUNT_NAME"

Dokumen developer

Akua
  "gateway": "akua"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Akurateco
  "gateway": "akuratecolab"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Alfa-Bank
  "gateway": "alfabank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Algoritma
  "gateway": "algoritma"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Allinpay
  "gateway": "allinpayintl"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

AllPayments
  "gateway": "allpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

alticepay
  "gateway": "alticepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

AMO FINTECH LLC
  "gateway": "amofintech"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Amwal Pay
  "gateway": "amwalalraqamia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Anedot
  "gateway": "anedot"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

ApcoPay
  "gateway": "apcopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

APPEX
  "gateway": "epos"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Armenian Card OJSC
  "gateway": "epgarca"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

AsiaBill
  "gateway": "asiabill"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Assist
  "gateway": "assist"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Assist Belarus
  "gateway": "belassist"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Assist Kazakhstan
  "gateway": "assistkz"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Aurus
  "gateway": "auruspay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Authorize.net
  "gateway": "authorizenet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Axerve
  "gateway": "gestpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

AXS
  "gateway": "axsasia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

azericardgpay
  "gateway": "azericardgpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

B2B Soft Pay
  "gateway": "b2bsoftpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bancstac
  "gateway": "bancstac"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Bank 131
  "gateway": "bank131"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bank Muscat
  "gateway": "bankmuscat"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

BANK RBK
  "gateway": "bankrbkkzpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Bank Vostok
  "gateway": "bankvostok"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Barclaycard
  "gateway": "barclayssmartpayadvance"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Barion
  "gateway": "barion"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Basis Theory
  "gateway": "basistheory"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

BCC.KZ
  "gateway": "bccpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

bePaid
  "gateway": "ecomcharge"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bereke Bank
  "gateway": "berekepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Better Payment Germany GmbH
  "gateway": "betterpayment"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Billing Systems
  "gateway": "billingsystems"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bindo Labs Limited
  "gateway": "bindo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

bisys.kz
  "gateway": "bisysgpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bizon.one
  "gateway": "bizonone"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bizzon
  "gateway": "bizzon"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Blackstone Merchant Services
  "gateway": "blackstone"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Blocks
  "gateway": "blocks"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bluefin
  "gateway": "bluefin"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Bluefin Europe
  "gateway": "bluefineurope"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Blue Media
  "gateway": "bluemedia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

BlueSnap
  "gateway": "bluesnap"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Blusky Technology Services
  "gateway": "bluskysvcpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

BORICA
  "gateway": "borica"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

BoxPay
  "gateway": "boxpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

BPC
  "gateway": "bpcpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

BR-DGE
  "gateway": "comcarde"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Braintree
  "gateway": "braintree"
  "braintree:apiVersion": "v1"
  "braintree:sdkVersion": "braintree.client.VERSION"
  "braintree:merchantId": "YOUR_BRAINTREE_MERCHANT_ID"
  "braintree:clientKey": "YOUR_BRAINTREE_TOKENIZATION_KEY"

Dokumentasi developer

Braspag
  "gateway": "cielo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

BridgerPay
  "gateway": "bridgerpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Bonum
  "gateway": "bonumpsp"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

BT Pay
  "gateway": "btpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Buckaroo
  "gateway": "buckaroo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Buya
  "gateway": "buya"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Callpay
  "gateway": "callpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Card Access Services Pty Ltd
  "gateway": "cardaccess"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CARDAQ
  "gateway": "cardaq"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CardCom
  "gateway": "cardcom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

CardConnect
  "gateway": "cardconnect"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Cardknox
  "gateway": "cardknox"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

cardlink
  "gateway": "cardlink"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Cardstream
  "gateway": "crst"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Cashflows
  "gateway": "cashflowsgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Cathay United Bank
  "gateway": "cathaybk"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CCAvenue UAE
  "gateway": "ccavenueuae"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CCV
  "gateway": "ccv"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Cecabank
  "gateway": "cecabank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Celerispay
  "gateway": "celerispay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CentralPay
  "gateway": "centralpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Centrobill LTD
  "gateway": "centrobill"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Chargehive
  "gateway": "chargehive"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

CharityEngine
  "gateway": "charityengine"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Chase Merchant Services
  "gateway": "chase"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Checkout.com
  "gateway": "checkoutltd"
  "gatewayMerchantId": "YOUR_PUBLIC_KEY"

Dokumen developer

CIBPAY MMC
  "gateway": "cibpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

City Bank PLC
  "gateway": "citybank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CityPay
  "gateway": "citypay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Clink
  "gateway": "clink"
  "gatewayMerchantId": "NA"

Dokumentasi developer

Cloud9 Payment Gateway (C9PG)
  "gateway": "c9pg"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CloudPayments
  "gateway": "cloudpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CloudWalk
  "gateway": "cloudwalk"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CNP Processing Kazakhstan
  "gateway": "processingkz"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Coinflow
  "gateway": "coinflow"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Comax (Native Data LTD)
  "gateway": "comaxpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Computop
  "gateway": "computop"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

ConcordPay
  "gateway": "concordpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Conekta
  "gateway": "conektagpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Connectum
  "gateway": "connectum"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

ConnexPay
  "gateway": "connexpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CoralPay
  "gateway": "coralpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Corefy
  "gateway": "paycoreio"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Coriunder Limited
  "gateway": "coriunder"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Corvus Pay
  "gateway": "corvuspay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Credit2000
  "gateway": "credit2000"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Credorax
  "gateway": "credorax"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CrossPay
  "gateway": "crosspay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Cross Switch
  "gateway": "crossswitch"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

CSG Forte
  "gateway": "csgforte"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CTBC Bank
  "gateway": "ctbcbank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CURO Payments
  "gateway": "curopayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

CYBERBIZ
  "gateway": "cyberbizpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Cybersource
  "gateway": "cybersource"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

danube.pay
  "gateway": "danubepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Datacap Systems, Inc.
  "gateway": "datatrans"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Datatrans
  "gateway": "datatrans"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Debia
  "gateway": "debia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

DECTA
  "gateway": "decta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer

Dejavoo
  "gateway": "denovosystempay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

DEUNA
  "gateway": "deuna"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Deutsche Bank AG
  "gateway":
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer

Deutsche Bank – Merchant Solutions
  "gateway":
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

DG Financial Technology, Inc.
  "gateway": "veritrans"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Dibsy
  "gateway": "dibsy"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Digital Commerce Bank
  "gateway": "dcpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Digital Finance
  "gateway": "digitalfinance"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Dintero
  "gateway": "dintero"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

dLocal
  "gateway": "dlocal"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

DNA Payments
  "gateway": "dnapayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Dojo
  "gateway": "dojo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

DOKU
  "gateway": "dokudjakarta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Doremi-Tech
  "gateway": "doremitech"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Dotpay
  "gateway": "dotpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

e-SiTef - Software Express
  "gateway": "softwareexpress"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

easycard
  "gateway": "easycard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

EasyPay
  "gateway": "easypay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Easypay EU
  "gateway": "easypaypt"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

EBANX
  "gateway": "ebanx"
  "gatewayMerchantId": "YOUR_PUBLIC_INTEGRATION_KEY"

Dokumentasi developer

EBizCharge
  "gateway": "ebizcharge"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

eCard
  "gateway": "ecard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Ecart Pay
  "gateway": "ecartpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Ecentric Payment Systems
  "gateway": "ecentric"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Ecomm Merchant Solutions
  "gateway": "ecommmerchantsolutions"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

ECOMMPAY
  "gateway": "ecommpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Ecopaynet
  "gateway": "ecopaynet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

ECPay
  "gateway": "ecpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

ECRYPT INC
  "gateway": "ecrypt"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

EdfaPay
  "gateway": "edfapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

eftcorporation
  "gateway": "eftcorporation"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

eGHL
  "gateway": "eghl"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Elavon (Converge)
  "gateway": "convergepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Emerchantpay
  "gateway": "emerchantpay"
  "gatewayMerchantID": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

emspay
  "gateway": "emsonline"
  "gatewayMerchantID": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Encoded
  "gateway": "encoded"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

epay
  "gateway": "epay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

EPAYJSC
  "gateway": "epayjsc"
  "gatewayMerchantID": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

EpicPay
  "gateway": "epicpay"
  "gatewayMerchantID": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Espago
  "gateway": "espago"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Etisalat
  "gateway": "etisalatpaymentgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

EuPlatesc - Europayment Services SRL
  "gateway": "euplatesc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Euronet Merchant Services (epay)
  "gateway": "emspi"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Evertec Placetopay S.A.S
  "gateway": "placetopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Evervault
  "gateway": "evervault"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

EveryPay S.A.
  "gateway": "EveryPay S.A."
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

EVONET
  "gateway": "cardinfolink"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

EVOPAY
  "gateway": "EVOPAY"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Evo Payment Gateway
  "gateway": "evopaymentgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

exactly.com
  "gateway": "exactly"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Exact Payments
  "gateway": "exactpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Fat Zebra
  "gateway": "fatzebra"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Fenige
  "gateway": "fenige"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Fexco payUnite
  "gateway": "fexco"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Fibonatix
  "gateway": "fibonatixparagon"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Financial Line
  "gateway": "finline"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Finanso UA
  "gateway": "finansoua"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

finby
  "gateway": "finby"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

fincode byGMO
  "gateway": "fincode"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

FINEXUS
  "gateway": "finexus"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Finix
  "gateway": "finix"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Finrelay
  "gateway": "finrelay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

FireAntPay
  "gateway": "fireantpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

First American by Deluxe
  "gateway": "firstpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Fiuu (formerly Razer Merchant Services & MOLPay)
  "gateway": "molpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

FIS Biller Solutions
  "gateway": "fisglobalbsp"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Fiserv
  "gateway": "fiserv"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Fiserv
  "gateway": "fiservipg"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Flintn
  "gateway": "flintn"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Flitt
  "gateway": "flitt"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Flow pagos
  "gateway": "flow_pay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Fluid Pay
  "gateway": "fluidpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Flyway
  "gateway": "flyway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

FM Finance LTD
  "gateway": "fmfinanceltd"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

ForteBank
  "gateway": "fortebank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Forward
  "gateway": "forward"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

FPAY
  "gateway": "fizzapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Fractal
  "gateway": "fractal"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Freedom Finance Bank
  "gateway": "axayscom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

FreedomPay
  "gateway": "freedompay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

FreedomPay.Money
  "gateway": "payboxmoney"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Freepay
  "gateway": "freepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Frisbii
  "gateway": "Frisbii"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Frontstream
  "gateway": "frontstreampayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Fung Payments
  "gateway": "fungpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Gatewell Payments
  "gateway": "gatewellpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

GBPayments
  "gateway": "gbpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

geidea
  "gateway": "geidea"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Getnet
  "gateway": "getnetpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

GETTRX
  "gateway": "globalelectronictechnology"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Gkash
  "gateway": "gkash"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Global One Pay
  "gateway": "globalonepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Global Payments
  "gateway": "globalpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

globalpaymentsinc
  "gateway": "globalpaymentsinc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

GMO Payment Gateway
  "gateway": "gmopg"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

GoDaddy Payments
  "gateway": "godaddypayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Good Idea Technologies
  "gateway": "git"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

GoPay
  "gateway": "gopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

GP Webpay
  "gateway": "gpwebpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Gravity Payments
  "gateway": "gravitypayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Gr4vy
  "gateway": "gr4vy"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Gsurf Tecnologia em Pagamentos Eletrônicos Ltda
  "gateway": "gsurf"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Halyk Bank
  "gateway": "halykbank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Helcim
  "gateway": "helcim"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

HiPay
  "gateway": "hipay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

HIPS
  "gateway": "hips"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

HiTrust
  "gateway": "hitrustpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

hutko
  "gateway": "hutko"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Hyp
  "gateway": "hyp"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

icard
  "gateway": "icardwallet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

iCount
  "gateway": "iCount"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

iCredit
  "gateway": "rivhit"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

IDid Tecnologia Ltda
  "gateway": "idid"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

iKhokha
  "gateway": "ikhokha"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

IMOJE
  "gateway": "imoje"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Impaya
  "gateway": "impayarus"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Infofintech S A S
  "gateway": "infofintech"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Inovio Payments
  "gateway": "inoviopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

InPlat
  "gateway": "inplat"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

InstaMed
  "gateway": "instamed"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

IntaSend Solutions Limited
  "gateway": "intasend"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

intella
  "gateway": "intella"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

IntellectMoney
  "gateway": "intellectmoney"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Interactive Transaction Solutions
  "gateway": "interactivets"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Interpay
  "gateway": "interpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Interpay Llp
  "gateway": "interpaypro"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Interswitch Payment Gallery
  "gateway": "interswitch"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Intervale
  "gateway": "intervale"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

ioka fintech
  "gateway": "ioka"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

iPay88
  "gateway": "ipay88"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

IPSI
  "gateway": "ipsi"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

iQmetrix
  "gateway": "iqmetrixpaymentservicesgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

iVeri Payment Technologies
  "gateway": "iveri"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

IXOPAY
  "gateway": "ixopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

JagoLink Limited
  "gateway": "jagolink"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

JetPay
  "gateway": "jetpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

jpmmps
  "gateway": "jpmmps"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

JudoPay
  "gateway": "judopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Juspay
  "gateway": "juspay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

JustiFi
  "gateway": "justifi"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

KapitalBank
  "gateway": "eCommerceKapitalBank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Kassa
  "gateway": "kassacom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

kassa24pay
  "gateway": "kassa24pay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Kazpost JSC
  "gateway": "qazpost"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

KimNganPay
  "gateway": "kimngan"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Kineox
  "gateway": "kineox"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Klix by Citadele
  "gateway": "klix"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Koin
  "gateway": "koin"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

KOMOJU
  "gateway": "komoju"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

KPay Group
  "gateway": "kpaygroup"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Kronor.io
  "gateway": "kronor"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Kyrgyzkommertsbank
  "gateway": "kkbpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Lapsa Payments
  "gateway": "lapsapayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Lemonway
  "gateway": "lemonway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

LHV Pank
  "gateway": "lhvpank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Liberty
  "gateway": "liberty"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Life Pay
  "gateway": "lifepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Limepay
  "gateway": "limepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

LINK4TECH
  "gateway": "googlekykeons"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Linkly
  "gateway": "linkly"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

LiqPay
  "gateway": "liqpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

LITIQON OÜ
  "gateway": "nuvex"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Littlepay
  "gateway": "littlepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

LogPay
  "gateway": "logpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Loyale
  "gateway": "loyale"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

lynck
  "gateway": "lynck"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Lyra
  "gateway": "lyra"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

MADFIN TECH
  "gateway": "madfingate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Magnetiq Bank
  "gateway": "magnetiq"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

maib
  "gateway": "maibecomm"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

MakeCommerce (Maksekeskus)
  "gateway": "maksekeskus"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Maksu GMBH
  "gateway": "maksupayeu"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Mandarin
  "gateway": "mandarin"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Market Pay
  "gateway": "marketpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Mastercard Payment Gateway Services
  "gateway": "mpgs"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Maya
  "gateway": "mayaph"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Mellifera
  "gateway": "mellifera"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

MerchantE
  "gateway": "merchante"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Midtrans
  "gateway": "midtrans"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Menahel4uGoCredit
  "gateway": "menahel4ugocredit"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Merchant Warrior
  "gateway": "merchantwarrior"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Minsait Payments Systems
  "gateway": "minsaitpaymentsgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

MITEC
  "gateway": "mitecmx"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MIXPLAT
  "gateway": "mixplat"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Mobbex
  "gateway": "mobbex"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

MOBI.Money
  "gateway": "mobimoney"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Modulbank
  "gateway": "modulbank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Mollie
  "gateway": "mollie"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Mondido
  "gateway": "mondido"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Monei
  "gateway": "monei"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

monek
  "gateway": "monek"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Moneris
  "gateway": "moneris"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Moneta
  "gateway": "moneta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Monext
  "gateway": "monext"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MoneyHash
  "gateway": "moneyhash"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Money.Mail.Ru
  "gateway": "moneymailru"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

monripayments
  "gateway": "monripayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Moov
  "gateway": "moov"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Moyasar
  "gateway": "moyasar"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MPay
  "gateway": "managepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MSolution
  "gateway": "msolution"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

mstartipg
  "gateway": "mstartipg"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

MTB BANK, PJSC
  "gateway": "mtb"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Multicarta
  "gateway": "mulitcarta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MultiSafepay
  "gateway": "multisafepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Mundipagg
  "gateway": "mundipagg"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MyCheck
  "gateway": "mycheck"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Mycar Pay
  "gateway": "mycarpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MyChoice2Pay
  "gateway": "mychoice2pay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

MyFatoorah
    "gateway": "myfatoorah"
    "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

MyPay
  "gateway": "mypay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

myPOS
  "gateway": "mypos"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

N&TS Group
  "gateway": "netsgroup"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

NCCC
  "gateway": "nccc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

NCR Voyix
  "gateway": "ncrpaymentsolutions"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Neolink
  "gateway": "neolinkprocessing"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Neon Pay
  "gateway": "neonpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Neopayment
  "gateway": "neopayment"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Netopia
  "gateway": "netopia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

NetValve
  "gateway": "netvalve"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Network International
  "gateway": "networkintl"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Newebpay (formerly STPath, Pay2Go)
  "gateway": "newebpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Newtech
  "gateway": "newtechmobile"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Nexi
  "gateway": "nexi"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Nexi
  "gateway": "siavpos"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Nexi Easy
  "gateway": "easy"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

NMI
  "gateway": "gatewayservices"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

noon payments
  "gateway": "noonpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Noqoody Pay
  "gateway": "noqoodypay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

North
  "gateway": "north"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Novalnet
  "gateway": "novalnet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Nexi Relay
  "gateway": "nexirelay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

NTT DATA
  "gateway": "nttdatahk"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Nuvei
  "gateway": "nuvei"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Oceanpayment
  "gateway": "oceanpayment"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Omise
  "gateway": "omise"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Omno
  "gateway": "omno"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

OneGate
  "gateway": "onegate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

One Inc
  "gateway": "oneinc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Onelya
  "gateway": "onelya"
  "gatewayMerchantId": "YOUR_GATWAY_MERCHANT_ID"

Dokumen developer

Onerway
  "gateway": "ronghan"
  "gatewayMerchantId": "YOUR_GATWAY_MERCHANT_ID"

Dokumen developer

OneVision Limited
  "gateway": "onevision"
  "gatewayMerchantId": "YOUR_GATWAY_MERCHANT_ID"

Dokumentasi developer

OnPay
  "gateway": "onpayio"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Opayo by Elavon
  "gateway": "opayoelavon"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

ONVO
  "gateway": "onvopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Orient Commercial Joint Stock Bank (OCB)
  "gateway": "ocbcheckout"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

OrkestaPay
  "gateway": "orkestapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Oschadbank
  "gateway": "oschadbank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Outpayce
  "gateway": "outpayce"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

pagarme
  "gateway": "pagarme"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PagBank
  "gateway": "pagbank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PagBrasil
  "gateway": "pagbrasil"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PagSeguro
  "gateway": "pagsegurointernational"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Pay N Seconds
  "gateway": "paynseconds"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

PAY2M
  "gateway": "pay2m"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payadmit
  "gateway": "payadmit"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payarc
  "gateway": "payarc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paybis
  "gateway": "paybis"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PAYBOX VERIFONE
  "gateway": "paybox"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Pay.com
  "gateway": "paycom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PAYCOMET
  "gateway": "paycomet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Paycore
  "gateway": "twisto"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Paycross Ltd
  "gateway": "paycross"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayDo
  "gateway": "paydo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paydock
  "gateway": "paydock"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayEase
  "gateway": "payeasenet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayEngine
  "gateway": "payengine"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayerMax
  "gateway": "payermax"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayFabric
  "gateway": "payfabric"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayFacto
  "gateway": "payfacto"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayFast
  "gateway": "gopayfastuat"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payfast by Network
  "gateway": "payfast"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

paygent
  "gateway": "paygent"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payhub
  "gateway": "payhub"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayKKa
  "gateway": "paykkaeu"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payku
  "gateway": "payku"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayLane
  "gateway": "paylane"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payler
  "gateway": "payler"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayLink®
  "gateway": "paylink"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payload
  "gateway": "payload"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paymark
  "gateway": "paymark"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayMaster
  "gateway": "paymaster"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayMe
  "gateway": "payme"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payment Fusion
  "gateway": "paymentfusion"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PaymentIQ
  "gateway": "worldlinedevcode"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paymentvision
  "gateway": "paymentvision"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paymentwall
  "gateway": "paymentwall"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paymo
  "gateway": "paymo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Paymob
  "gateway": "gpaymob"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayMongo
  "gateway": "paymongo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Paymtech
  "gateway": "paymtech"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayNearMe
  "gateway": "paynearme"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payneteasy
  "gateway": "payneteasy"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayNetWorx
  "gateway": "paynetworx"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayNext Inc
  "gateway": "paynext"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Pay.nl
  "gateway": "paynl"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paynopain
  "gateway": "paynopain"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayOne
  "gateway": "payone"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayOnline
  "gateway": "payonline"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payonomy Limited
  "gateway": "asperato"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Payoo
  "gateway": "payoo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayPal Complete Payments
  "gateway": "paypalppcp"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Pay Theory
  "gateway": "paytheory"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayPlus
  "gateway": "payplus"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayPlusLLC
  "gateway": "payplusllc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayPro Pvt Ltd
  "gateway": "paypro"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Payrails
  "gateway": "payrails"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayRex
  "gateway": "payrexhq"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payrexx
  "gateway": "payrexx"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayRiff
  "gateway": "payriff"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payrix
  "gateway": "payrix"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paysafe
  "gateway": "paysafe"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payscout
  "gateway": "payscout"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paysend Business
  "gateway": "paysend"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paysoft
  "gateway": "paysoft"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Paystack Payments Limited
  "gateway": "paystack"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Pay360
  "gateway": "pay360"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayTabs
  "gateway": "paytabs"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

paytech
  "gateway": "paytechsolutions"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayTech Ukraine
  "gateway": "paytech"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payten Payment Gateway
  "gateway": "paytentr"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Paythru
  "gateway": "paythru"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payture
  "gateway": "payture"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayU
  "gateway": "payu"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayU LATAM
  "gateway": "payulatam"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PAYUNi
  "gateway": "payuni"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PayU Romania
  "gateway": "payuro"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayU Russia
  "gateway": "payuru"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Payway
  "gateway": "payway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Paywiser
  "gateway": "paywiser"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PayXpert
  "gateway": "payxpert"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Payzone Ireland
  "gateway": "payzoneireland"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PBT Gateway Services Ltd
  "gateway": "pbtgateway"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Pelecard
  "gateway": "pelecard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Pensopay
  "gateway": "pensopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PhotonPay
  "gateway": "photonpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Pifagorus Ltd
  "gateway": "pifagorusgate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Pikassa
  "gateway": "pikassa"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PingPong
  "gateway": "pingpongx"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Pin Payments
  "gateway": "pinpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Planet
  "gateway": "cccpayment"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PlanetPay
  "gateway": "itcardpaymentservice"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Plategka.com
  "gateway": "plategkacom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Platon
  "gateway": "platon"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Plexo
  "gateway": "plexouy"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Plexy
  "gateway": "plexy"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Pomelo
  "gateway": "pomelopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Portmone
  "gateway": "portmonecom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PortPos
  "gateway": "portpos"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Powerpay
  "gateway": "powerpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Praxis
  "gateway": "praxistech"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Preczn
  "gateway": "preczn"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PrimePay
  "gateway": "primepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Primer
  "gateway": "primer"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Procard
  "gateway": "procard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

ProcessOut
  "gateway": "processout"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Przelewy24
  "gateway": "przelewy24"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PSCB
  "gateway": "pscbru"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

PSiGate Inc.
  "gateway": "psigate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

PXP Financial
  "gateway": "pxpfinancial"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Qenta Payment CEE
  "gateway": "qenta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

QIWI
  "gateway": "qiwi"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

QNB
  "gateway": "qnbpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

QorCommerce
  "gateway": "qorpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Qualpay
  "gateway": "qualpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

QuickPay
  "gateway": "quickpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Qvalent
  "gateway": "qvalent"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Radial
  "gateway": "radial"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Raiffeisen Processing Centre
  "gateway": "raiffeisenprocessingcentre"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Rainforest
  "gateway": "rainforestpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

RapidCents
  "gateway": "rapidcentspay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Rapyd
  "gateway": "rapyd"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

RBK.money
  "gateway": "rbkmoney"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Rebail Capital
  "gateway": "rebailcapital"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Rebilly
  "gateway": "Rebilly"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Recurly
  "gateway": "recurly"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Reddot
  "gateway": "reddotpayment"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Rede
  "gateway": "rede"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Redsys
  "gateway": "redsys"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Reepay
  "gateway": "reepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Revenue Monster
  "gateway": "revenuemonster"
  "gatewayMerchantId": "YOUR_REVOLUT_ORDER_TOKEN"

Dokumentasi developer

Revolut
  "gateway": "revolut"
  "gatewayMerchantId": "YOUR_REVOLUT_ORDER_TOKEN"

Dokumentasi developer

RocketGate
  "gateway": "rocketgate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

revPAY (Revenue Harvest)
  "gateway": "revpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Rootline
  "gateway": "rootline"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Russian Standard Bank
  "gateway": "rsb"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Ryft
  "gateway": "ryft"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

S.C. C SOLUTION S.R.L.
  "gateway": "plationline"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Safepay
  "gateway": "safepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Saferpay
  "gateway": "worldlinesaferpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Safexpay
  "gateway": "safexpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Sberbank
  "gateway": "sberbank"
  "gatewayMerchantId": "YOUR_ORGANIZATION_NAME"

Dokumentasi developer

SEB Baltic
  "gateway": "sebbaltic"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SEBES Technology
  "gateway": "sebes"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SecurePay
  "gateway": "securepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Sense Bank
  "gateway": "sensebank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SensePass
  "gateway": "sensepass"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Servicios Digitales Popular S.A.
  "gateway": "pagosazul"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Shift4
  "gateway": "shift4payments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Shiji Group
  "gateway": "shijipaymentsolutions"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SH Start High
  "gateway": "shstartpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

shvarenapay
  "gateway": "shvarenapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SIBS Romania
  "gateway": "romcard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

simbasoft
  "gateway": "simbasoft"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

SimplePay Zrt
  "gateway": "simplepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Sipay
  "gateway": "sipay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

SmartPay
  "gateway": "smartpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Softbank Payment Service
  "gateway": "sbps"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Softtouch POS and Payments
  "gateway": "softtouch"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Sohar International
  "gateway": "soharinternational"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Sokin
  "gateway": "sokinpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Solid
  "gateway": "solid"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Sony Payment Services
  "gateway": "sonypaymentservices"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SPayN
  "gateway": "spayn"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Splitit
  "gateway": "splitit"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Spreedly
  "gateway": "spreedly"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Square
  "gateway": "square"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SredaPay
  "gateway": "sredapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

SSLCOMMERZ
  "gateway": "sslcommerz"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Stancer
  "gateway": "stancer"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Stripe
  "gateway": "stripe"
  "stripe:version": "2018-10-31"
  "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"

Dokumen developer

SUMIT
  "gateway": "sumit"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

SUNBAY
  "gateway": "sunbay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Suntech
  "gateway": "esafe"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

SuperSonic Pay
  "gateway": "supersonicpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Surfboard Payments
  "gateway": "surfboard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Svea Bank
  "gateway": "svea"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Swedbank Baltic
  "gateway": "swedbankbaltic"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Swedbank Pay
  "gateway": "payexswedbankpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

TabaPay
  "gateway": "tabapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

TapPay (Cherri Tech)
  "gateway": "tappay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

TapPayments
  "gateway": "tappayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

tarlanpayments
  "gateway": "tarlanpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

TAS Link
  "gateway": "taslink"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Tatra banka (CardPay)
  "gateway": "tatrabanka"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Technology Partnership PGS
  "gateway": "technologypartnership"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

TEKO
  "gateway": "teko"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Telepay
  "gateway": "telerompay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Telr
  "gateway": "telr"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

theMAP
  "gateway": "themap"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

The Vaults International Payment L.L.C
  "gateway": "vaultspaygpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Till Payments
  "gateway": "tillpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Tilopay
  "gateway": "tilopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Time Project LLC
  "gateway": "timeproject"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Tinkoff
  "gateway": "tinkoff"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

TIPTOP PAY
  "gateway": "tiptoppay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

TIYN
  "gateway": "tiyn"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

TORA
  "gateway": "tora"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

TotalPay
  "gateway": "totalpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

TPay
  "gateway": "tpaycom"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

TPay.com
  "gateway": "tpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Trade and Development Bank of Mongolia(TDBM)
  "gateway": "tdbgpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Transact Campus
  "gateway": "transactcampus"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Transact Pro
  "gateway": "transactpro"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Transactworld CY
  "gateway": "TransactworldCY"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Transaction Services Network
  "gateway": "tns"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Transpayrent
  "gateway": "transpayrent"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Tranzila
  "gateway": "tranzila"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Tranzzo
  "gateway": "tranzzo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Tribe Payments
  "gateway": "tribepayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Truevo
  "gateway": "truevo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

TrustPay
  "gateway": "trustpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Trust Payments
  "gateway": "trustpayments"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Tuna
  "gateway": "tuna"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

TWPAYZ
  "gateway": "transactworlduk"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Tyler Technologies
  "gateway": "tylertech"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

2can&ibox
  "gateway": "twocan"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

UAPAY
  "gateway": "uapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

UBRR
  "gateway": "ubrrpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Ukrcardpay
  "gateway": "ukrcardpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

UkrGasBank Pay
  "gateway": "ukrgasbankpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Unibank OJSC
  "gateway": "unibankcheckout"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Unicorn Laboratories
  "gateway": "unicornlab"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Unipaas payments technologies
  "gateway": "unipaas"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

unitedfinancialcorporation
  "gateway": "unitedfinancialcorporation"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Uniteller
  "gateway": "uniteller"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Unitpay
  "gateway": "unitpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Unlimint
  "gateway": "unlimint"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Unzer
  "gateway": "unzer"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Unzer Austria
  "gateway": "unzeraustria"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

UPC
  "gateway": "upc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Upgate
  "gateway": "upgate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

USAePay
  "gateway": "usaepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

UseePay
  "gateway": "useepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

USIO, Inc.
  "gateway": "usio"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Valitor
  "gateway": "valitor"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

value.io
  "gateway": "inspirecommerce"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Vanco
  "gateway": "vanco"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

VantagePay
  "gateway": "vantagepay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Vantiv
  "gateway": "vantiv"
  "vantiv:merchantPayPageId": "YOUR_PAY_PAGE_ID"
  "vantiv:merchantOrderId": "YOUR_ORDER_ID"
  "vantiv:merchantTransactionId": "YOUR_TRANSACTION_ID"
  "vantiv:merchantReportGroup": "*web"

Dokumentasi developer

Vayapay
  "gateway": "vayapay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

Vendo
  "gateway": "vendoservices"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Verestro
  "gateway": "verestro"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Verifone Payments BV
  "gateway": "twocheckoutpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Verifone Web Pay
  "gateway": "verifonefinland"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Very Good Security
  "gateway": "verygoodsecurity"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Vesta
  "gateway": "vesta"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Victoriabank
  "gateway": "victoriabank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Vindicia
  "gateway": "vindicia"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Vinr
  "gateway": "vinrpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Viva Wallet
  "gateway": "vivawallet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

VTEX
  "gateway": "vtex"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

W-HA
  "gateway": "wha"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Waffo
  "gateway": "waffo"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Wallee
  "gateway": "wallee"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Walletdoc
  "gateway": "walletdoc"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Walletto
  "gateway": "walletto"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

WayForPay
  "gateway": "wayforpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

WEAT
  "gateway": "weatpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

WhenThen
  "gateway": "whenthen"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Whitegate
  "gateway": "Whitegate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

WHITELARK LTD
  "gateway": "whitelark"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Windcave
  "gateway": "windcave"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Wirebank
  "gateway": "wirebank"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Wirecard
  "gateway": "wirecard"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Wondergate
  "gateway": "wondergate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

WOOPPAY
  "gateway": "wooppay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

WooshPay
  "gateway": "swooshtransfer"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Worldline (GlobalCollect)
  "gateway": "globalcollect"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Worldline - Ingenico (WL Online Checkout)
  "gateway": "worldlineingenicoogone"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Worldline Nordics (Worldline Online Checkout)
  "gateway": "worldlineonlinecheckout"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Worldline Sips
  "gateway": "wlsips"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Worldnet
  "gateway": "worldnet"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Worldpay
  "gateway": "worldpay"
  "gatewayMerchantId": "YOUR_WORLDPAY_MERCHANT_ID"

Dokumentasi developer

Wpay
  "gateway": "wpayaus"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

WSPay
  "gateway": "wspay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Xendit
  "gateway": "xendit"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

xMoney
  "gateway": "xmoneypay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

XPATE
  "gateway": "xpate"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

xpay
  "gateway": "xpaycomua"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

XPay by PostEx
  "gateway": "xpaybypostex"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

YabandPay B.V.
  "gateway": "yabandpay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Yapstone
  "gateway": "yapstone"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

YIĞIM Payment System
  "gateway": "yigim"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

ЮKassa (YooKassa)
  "gateway": "yoomoney"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Yuno
  "gateway": "yuno"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Z-credit
  "gateway": "zcredit"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Zalopay
  "gateway": "zalopay"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Zeller
  "gateway": "zeller"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer tidak tersedia

ZEN.com
  "gateway": "zen"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Zest
  "gateway": "zestpayment"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumentasi developer

Zift
  "gateway": "zift"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Tidak ada dokumen developer yang tersedia

Zuora
  "gateway": "zuora"
  "gatewayMerchantId": "YOUR_GATEWAY_MERCHANT_ID"

Dokumen developer

Tips: example adalah nama gateway yang valid di lingkungan pengujian. Jika ingin mencoba API, Anda dapat membiarkan contoh kode di atas apa adanya. Saat Anda menggunakan gateway example, situs Anda tidak menerima data kartu yang dapat melakukan transaksi, tetapi alur pengguna terlihat sama.

Jenis tokenisasi PAYMENT_GATEWAY adalah penerapan metode pembayaran kartu yang paling umum oleh penjual di Google Pay API. Jika penyedia jasa pembayaran Anda tidak didukung, Anda mungkin dapat menerima Google Pay melalui integrasi LANGSUNG. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Tokenisasi langsung.

Langkah 3: Tentukan jaringan kartu pembayaran yang didukung

Tentukan jaringan kartu yang diterima oleh situs Anda. Lihat contoh kode berikut:

const allowedCardNetworks = ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"];

Google Pay API dapat menampilkan kartu yang tersimpan di Google.com (PAN_ONLY) atau token perangkat di perangkat berteknologi Android yang diautentikasi dengan kriptogram 3-D Secure (CRYPTOGRAM_3DS). Anda dapat mengontrol apakah kedua metode atau hanya salah satunya yang dapat ditampilkan.

Sebelum Anda menetapkan allowedCardAuthMethods, konfirmasikan dengan pemroses pembayaran dan akuisisi Anda apakah token perangkat (CRYPTOGRAM_3DS) didukung di wilayah Anda.

Lihat contoh kode berikut:

const allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"];

Untuk mengetahui informasi selengkapnya, lihat CardParameters dalam dokumentasi referensi Objek kami. Selain itu, tanyakan kepada gateway atau pemroses Anda untuk mengetahui jaringan kartu yang didukung, dan untuk dukungan token perangkat Android.

Penting:
  • Pastikan Anda juga menerapkan pemeriksaan dan kontrol risiko yang ada untuk transaksi pembayaran ke transaksi Google Pay. Validasi dan pemeriksaan penipuan Google Pay tidak dimaksudkan untuk menggantikan proses pengelolaan risiko Anda.
  • Jika Anda mendukung PAN_ONLY, pastikan Anda memicu 3D Secure (autentikasi tambahan) untuk transaksi PAN_ONLY PAN Google Pay dengan cara yang sama seperti saat Anda memicu 3D Secure untuk transaksi kartu normal.

Langkah 4: Jelaskan metode pembayaran yang diizinkan

Untuk mendeskripsikan metode pembayaran yang diizinkan, selesaikan langkah-langkah berikut:

  1. Gabungkan metode autentikasi yang didukung dan jaringan kartu yang didukung untuk menjelaskan dukungan situs Anda terhadap metode pembayaran CARD. Lihat contoh kode berikut:
    const baseCardPaymentMethod = {
      type: 'CARD',
      parameters: {
        allowedAuthMethods: allowedCardAuthMethods,
        allowedCardNetworks: allowedCardNetworks
      }
    };
  2. Perluas objek metode pembayaran kartu dasar untuk mendeskripsikan informasi yang Anda harapkan akan ditampilkan ke aplikasi Anda. Sertakan deskripsi data pembayaran yang ditokenisasi. Lihat contoh kode berikut:
    const cardPaymentMethod = Object.assign(
      {tokenizationSpecification: tokenizationSpecification},
      baseCardPaymentMethod
    );
  3. Untuk mengetahui informasi selengkapnya tentang parameters yang didukung, lihat CardParameters.

    Saat ini, Google Pay hanya mendukung jenis metode pembayaran CARD.

Langkah 5: Muat library JavaScript Google Pay API

Saat menggunakan <iframe>:
  • Jika halaman checkout yang memuat tombol Google Pay disematkan dengan <iframe>, pastikan untuk menetapkan atribut allow="payment". Jika iframe bertingkat terlibat, atribut ini harus ditetapkan untuk setiap <iframe>
  • Selain itu, jika <iframe> tidak menetapkan atribut src (konten iframe dibuat secara dinamis), atribut izin API pembayaran harus allow="payment *".

Untuk memuat library JavaScript Google Pay API, selesaikan langkah-langkah berikut:

  1. Sertakan JavaScript yang dihosting Google di halaman Anda. Lihat contoh kode berikut:
    <script
      async
      src="https://pay.google.com/gp/p/js/pay.js"
      onload="console.log('TODO: add onload function')">
    </script>
    Catatan: Jika halaman Anda menggunakan Kebijakan Keamanan Konten (CSP) yang memerlukan nonce untuk eksekusi skrip, sertakan atribut CSP nonce dalam tag <script> yang memuat pay.js.
    <script
      async
      src="https://pay.google.com/gp/p/js/pay.js"
      nonce="your-nonce-value"
      onload="console.log('TODO: add onload function')">
    </script>
  2. Setelah library JavaScript Google Pay API dimuat, lakukan inisialisasi objek PaymentsClient. Pengembangan awal menggunakan lingkungan TEST, yang menampilkan metode pembayaran tiruan yang sesuai untuk mereferensikan struktur respons pembayaran. Di lingkungan ini, metode pembayaran yang dipilih tidak dapat melakukan transaksi. Lihat contoh kode berikut.
    Catatan: Sebaiknya Anda hanya melakukan inisialisasi paymentsClient satu kali. Gunakan instance yang sama saat Anda memanggil semua API lainnya, seperti CreateButton, IsReadyToPay, PrefetchPaymentData, dan LoadPaymentData.
    const paymentsClient =
        new google.payments.api.PaymentsClient({environment: 'TEST'});
    Nonce Kebijakan Keamanan Konten (CSP): Jika aplikasi Anda menggunakan Kebijakan Keamanan Konten yang ketat, teruskan properti nonce opsional di PaymentOptions. Google Pay melampirkan atribut nonce ini ke semua elemen <style> dan <script> yang disisipkan secara dinamis, termasuk elemen yang dibuat oleh createButton().
    const paymentsClient =
        new google.payments.api.PaymentsClient({
          environment: 'TEST',
          nonce: 'your-csp-nonce'
        });

    Untuk mengetahui informasi selengkapnya tentang persyaratan lingkungan PRODUCTION yang menampilkan metode pembayaran yang dapat ditagih, lihat Checklist integrasi.

Langkah 6: Menentukan kesiapan membayar dengan Google Pay API

Untuk menentukan kesiapan membayar dengan Google Pay API, selesaikan langkah-langkah berikut:

  1. Tambahkan metode pembayaran yang diizinkan ke objek permintaan dasar Anda. Lihat contoh kode berikut:
    const isReadyToPayRequest = Object.assign({}, baseRequest);
    isReadyToPayRequest.allowedPaymentMethods = [baseCardPaymentMethod];
  2. Panggil isReadyToPay() untuk menentukan apakah Google Pay API didukung oleh perangkat dan browser saat ini untuk metode pembayaran yang Anda tentukan. Lihat contoh kode berikut:
    paymentsClient.isReadyToPay(isReadyToPayRequest)
        .then(function(response) {
          if (response.result) {
            // add a Google Pay payment button
          }
        })
        .catch(function(err) {
          // show error in developer console for debugging
          console.error(err);
        });

Langkah 7: Tambahkan tombol pembayaran Google Pay

Tambahkan tombol pembayaran Google Pay ke halaman Anda untuk mendorong pembeli melakukan checkout dengan metode pembayaran yang didukung oleh Google Pay API dan situs Anda. Untuk mengetahui informasi selengkapnya tentang jenis tombol, warna, dan persyaratan tampilan yang tersedia, lihat Panduan merek.

Lihat contoh kode tombol pembayaran berikut:

const button =
    paymentsClient.createButton({onClick: () => console.log('TODO: click handler'),
    allowedPaymentMethods: []}); // same payment methods as for the loadPaymentData() API call
document.getElementById('container').appendChild(button);

Langkah 8: Buat objek PaymentDataRequest

Untuk membuat objek PaymentDataRequest, selesaikan langkah-langkah berikut:

  1. Buat objek JavaScript yang menjelaskan dukungan situs Anda untuk Google Pay API. Untuk mengetahui daftar lengkap properti yang didukung, lihat PaymentDataRequest. Lihat contoh kode berikut:
    const paymentDataRequest = Object.assign({}, baseRequest);
  2. Tambahkan metode pembayaran yang didukung oleh aplikasi Anda, seperti konfigurasi data tambahan yang diharapkan dalam respons. Lihat contoh kode berikut:
    paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
  3. Tentukan total harga dan mata uang yang akan disetujui pembeli. Lihat contoh kode berikut:
    Penting: Penjual yang memproses transaksi di Wilayah Ekonomi Eropa (EEA) atau negara lain yang tunduk pada Autentikasi Pelanggan secara Ketat (SCA) harus menyertakan parameter countryCode, totalPrice, dan merchantName untuk memenuhi persyaratan SCA.
    paymentDataRequest.transactionInfo = {
      totalPriceStatus: 'FINAL',
      totalPrice: '123.45',
      currencyCode: 'USD',
      countryCode: 'US'
    };
  4. Berikan nama penjual yang terlihat oleh pengguna, dan gunakan nilai TEST merchantId kami saat berada di TEST. Untuk mengetahui detail selengkapnya, dan informasi tentang kapan harus mengganti nilai TEST merchantId, lihat MerchantInfo. Lihat contoh kode nama penjual yang terlihat oleh pengguna berikut:
    paymentDataRequest.merchantInfo = {
      merchantName: 'Example Merchant'
      merchantId: '12345678901234567890'
    };
    Catatan: Nilai TEST merchantId kami adalah numerik. Nilai merchantId spesifik Anda dapat berupa numerik atau alfanumerik. Tinjau MerchantInfo untuk mengetahui detail selengkapnya tentang cara mendapatkan merchantId spesifik Anda.

Langkah 9: Daftarkan pengendali peristiwa untuk gestur pengguna

Untuk mendaftarkan pengendali peristiwa untuk gestur pengguna, selesaikan langkah-langkah berikut:

  1. Daftarkan pengendali peristiwa klik untuk tombol pembelian. Pengendali peristiwa akan langsung memanggil loadPaymentData() setelah berinteraksi dengan tombol pembayaran Google Pay.
  2. Setelah pengguna Google memberikan izin kepada situs Anda untuk menerima informasi tentang metode pembayaran yang dipilih pengguna dan data kontak opsional, tangani respons dari Google Pay API.
  3. Ekstrak token pembayaran dari respons paymentData. Jika Anda menerapkan integrasi gateway, teruskan token ini ke gateway Anda tanpa modifikasi apa pun.
    Catatan: Di lingkungan TEST, respons pembayaran menyertakan data ringkasan tentang metode pembayaran yang dipilih yang sesuai untuk ditampilkan di halaman konfirmasi. Respons pembayaran tidak menyertakan metode pembayaran yang dapat melakukan transaksi.
    paymentsClient.loadPaymentData(paymentDataRequest).then(function(paymentData){
      // if using gateway tokenization, pass this token without modification
      paymentToken = paymentData.paymentMethodData.tokenizationData.token;
    }).catch(function(err){
      // show error in developer console for debugging
      console.error(err);
    });

Langkah 10 (opsional): Siapkan Otorisasi Pembayaran

Authorize Payments digunakan untuk memulai proses pembayaran dan mengonfirmasi status otorisasi pembayaran. Untuk menyiapkan Otorisasi Pembayaran, lakukan langkah-langkah berikut:

  1. Daftarkan callback onPaymentAuthorized() di PaymentOptions.
  2. Panggil fungsi loadPaymentData() dengan intent callback PAYMENT_AUTHORIZATION.
  3. Implementasikan onPaymentAuthorized().

Mendaftarkan callback onPaymentAuthorized

Contoh kode berikut menunjukkan cara mendaftarkan callback onPaymentAuthorized:

{
  environment: "TEST",
  merchantInfo: {
    merchantName: "Example Merchant",
    merchantId: "12345678901234567890"
  },
  paymentDataCallbacks: {
    onPaymentAuthorized: onPaymentAuthorized
  }
}

Memuat data pembayaran dengan intent callback

Contoh kode berikut menunjukkan cara menginisialisasi sheet pembayaran dengan Otorisasi Pembayaran:

const paymentDataRequest = Object.assign({}, baseRequest);
paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
paymentDataRequest.merchantInfo = {
  merchantName: 'Example Merchant'
  merchantId: '12345678901234567890',
};

paymentDataRequest.callbackIntents = ["PAYMENT_AUTHORIZATION"];

Menangani callback onPaymentAuthorized

Callback onPaymentAuthorized() dipanggil dengan objek PaymentData oleh Google setelah pembayar menyetujui pembayaran melalui gestur pengguna, seperti jika mereka mengklik Bayar.

Callback menampilkan nilai Promise<PaymentAuthorizationResult>. Objek PaymentAuthorizationResult memiliki status transaksi SUCCESS atau ERROR. Setelah berhasil, sheet pembayaran akan ditutup. Jika Anda mengalami error, lembar pembayaran akan merender detail error yang ditampilkan setelah pembayaran diproses. Pengguna dapat mengubah data pembayaran sheet pembayaran dan mengizinkan pembayaran lagi. Lihat contoh kode berikut:

function onPaymentAuthorized(paymentData) {
  return new Promise(function(resolve, reject){
    // handle the response
    processPayment(paymentData)
    .then(function() {
      resolve({transactionState: 'SUCCESS'});
    })
    .catch(function() {
      resolve({
        transactionState: 'ERROR',
        error: {
          intent: 'PAYMENT_AUTHORIZATION',
          message: 'Insufficient funds',
          reason: 'PAYMENT_DATA_INVALID'
        }
      });
    });
  });
}

Langkah 11 (opsional untuk yang mengaktifkan pengiriman): Siapkan Pembaruan Harga Dinamis

Pembaruan Harga Dinamis memungkinkan penjual memperbarui opsi pengiriman dan informasi transaksi secara dinamis berdasarkan alamat pengiriman yang dipilih. Selain itu, Anda dapat memperbarui informasi transaksi secara dinamis berdasarkan opsi pengiriman yang dipilih.

Untuk menyiapkan Pembaruan Harga Dinamis, lakukan langkah-langkah berikut:

  1. Daftarkan callback onPaymentAuthorized dan onPaymentDataChanged di PaymentOptions.
  2. Panggil fungsi loadPaymentData() dengan intent callback. Untuk mengetahui detailnya, lihat contoh yang sesuai.
  3. Terapkan onPaymentAuthorized dan onPaymentDataChanged.

Mendaftarkan callback PaymentData

Contoh kode berikut menunjukkan bahwa Pembaruan Harga Dinamis memerlukan fungsi callback untuk didaftarkan di objek paymentOptions PaymentsClient.

{
  environment: "TEST",
  merchantInfo: {
    merchantName: "Example Merchant",
    merchantId: "12345678901234567890"
  },
  paymentDataCallbacks: {
    onPaymentAuthorized: onPaymentAuthorized,
    onPaymentDataChanged: onPaymentDataChanged
  }
}

Memuat data pembayaran dengan intent callback

Contoh kode berikut menunjukkan cara menginisialisasi sheet pembayaran dengan konfigurasi alamat pengiriman dan opsi pengiriman yang diperlukan:

const paymentDataRequest = Object.assign({}, baseRequest);
paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
paymentDataRequest.merchantInfo = {
  merchantId: '12345678901234567890',
  merchantName: 'Example Merchant'
};


paymentDataRequest.callbackIntents = ["SHIPPING_ADDRESS",  "SHIPPING_OPTION", "PAYMENT_AUTHORIZATION"];



paymentDataRequest.shippingAddressRequired = true;
paymentDataRequest.shippingAddressParameters = getGoogleShippingAddressParameters();
paymentDataRequest.shippingOptionRequired = true;

Menangani callback onPaymentDataChanged

Callback onPaymentDataChanged dipanggil dengan objek IntermediatePaymentData yang mencakup alamat pengiriman dan opsi pengiriman yang dipilih di halaman pembayaran.

Callback akan menampilkan Promise<PaymentDataRequestUpdate>. Objek PaymentDataRequestUpdate memiliki informasi transaksi baru, opsi pengiriman, dan error data pembayaran. Data ini akan memperbarui sheet pembayaran.

Tangani kasus pengecualian, seperti alamat pengiriman yang tidak dapat dilayani atau opsi pengiriman yang tidak valid, langsung di sheet pembayaran. Siapkan objek PaymentDataError untuk menyoroti alasan error dengan pesan error kepada pengguna. Pastikan untuk menyertakan maksud terkait dalam pesan. Untuk mengetahui detail cara menyiapkan objek dan pesan, lihat contoh kode berikut:

function onPaymentDataChanged(intermediatePaymentData) {
  return new Promise(function(resolve, reject) {

    let shippingAddress = intermediatePaymentData.shippingAddress;
    let shippingOptionData = intermediatePaymentData.shippingOptionData;

    let paymentDataRequestUpdate = {};

    if (intermediatePaymentData.callbackTrigger == "INITIALIZE" || intermediatePaymentData.callbackTrigger == "SHIPPING_ADDRESS") {
      if(shippingAddress.administrativeArea == "NJ")  {
        paymentDataRequestUpdate.error = getGoogleUnserviceableAddressError();
      }
      else {
        paymentDataRequestUpdate.newShippingOptionParameters = getGoogleDefaultShippingOptions();
        let selectedShippingOptionId = paymentDataRequestUpdate.newShippingOptionParameters.defaultSelectedOptionId;
        paymentDataRequestUpdate.newTransactionInfo = calculateNewTransactionInfo(selectedShippingOptionId);
      }
    }
    else if (intermediatePaymentData.callbackTrigger == "SHIPPING_OPTION") {
      paymentDataRequestUpdate.newTransactionInfo = calculateNewTransactionInfo(shippingOptionData.id);
    }


    resolve(paymentDataRequestUpdate);
  });
}

Langkah 12 (opsional untuk kode promo): Siapkan Kode Promo

Kode Promo memungkinkan penjual memperbarui opsi pengiriman dan informasi transaksi secara dinamis berdasarkan kode promosi yang diberikan.

Untuk menyiapkan Kode Promo, lakukan langkah-langkah berikut:

  1. Daftarkan callback onPaymentDataChanged di PaymentOptions.
  2. Panggil fungsi loadPaymentData() dengan intent callback. Untuk mengetahui detailnya, lihat contoh yang sesuai.
  3. Terapkan onPaymentDataChanged callback function.

Mendaftarkan callback Penawaran

Contoh kode berikut menunjukkan bahwa Kode Promo memerlukan fungsi callback untuk didaftarkan di objek PaymentsClient paymentOptions.

{
  environment: "TEST",
  merchantInfo: {
    merchantName: "Example Merchant",
    merchantId: "12345678901234567890"
  },
  paymentDataCallbacks: {
    onPaymentDataChanged: onPaymentDataChanged
  }
}

Memuat data pembayaran dengan intent callback

Contoh kode berikut menunjukkan cara menginisialisasi sheet pembayaran dengan intent callback PENAWARAN:

const paymentDataRequest = Object.assign({}, baseRequest);
paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
paymentDataRequest.merchantInfo = {
  merchantId: '12345678901234567890',
  merchantName: 'Example Merchant'
};

paymentDataRequest.callbackIntents = ["OFFER"];

Menangani callback onPaymentDataChanged

Callback onPaymentDataChanged dipanggil dengan objek IntermediatePaymentData yang mencakup alamat pengiriman dan opsi pengiriman yang dipilih di halaman pembayaran.

Callback harus menampilkan Promise<PaymentDataRequestUpdate>. Objek PaymentDataRequestUpdate memiliki informasi transaksi baru, opsi pengiriman, data penawaran, dan error data pembayaran. Data ini akan memperbarui sheet pembayaran.

Tangani kasus pengecualian, seperti kode promo yang tidak valid, langsung di sheet pembayaran. Siapkan objek PaymentDataError untuk menyoroti alasan error dengan pesan error kepada pengguna. Pastikan untuk menyertakan intent terkait dalam pesan. Untuk mengetahui detail tentang cara menyiapkan objek dan pesan, lihat contoh kode berikut, yang mereferensikan objek (validPromoCodes) yang berisi nilai kode promo:

function onPaymentDataChanged(intermediatePaymentData) {
  return new Promise(function(resolve, reject) {

    let redemptionCodes = [];
    let shippingOptionData = intermediatePaymentData.shippingOptionData;
    let paymentDataRequestUpdate = {};
    paymentDataRequestUpdate.newTransactionInfo = getGoogleTransactionInfo();

    // ensure that promo codes set is unique
    if(typeof intermediatePaymentData.offerData != 'undefined') {
      // convert to set then back to array
      redemptionCodes = Array.from(
        new Set(intermediatePaymentData.offerData.redemptionCodes)
      );
    }

    // OPTIONAL: ensure that the newest promo code is the only one applied
    // redemptionCodes = new Array(redemptionCodes[redemptionCodes.length -1]);

    // validate promo codes and add descriptions to payment sheet
    if (intermediatePaymentData.callbackTrigger === 'OFFER') {
      paymentDataRequestUpdate.newOfferInfo = {};
      paymentDataRequestUpdate.newOfferInfo.offers = [];
      for (redemptionCode of redemptionCodes) {
        if (validPromoCodes[redemptionCode]) {
          paymentDataRequestUpdate = validPromoCodes[redemptionCode].function(
            validPromoCodes[redemptionCode],
            paymentDataRequestUpdate
          );
        } else {
          paymentDataRequestUpdate.error = getGoogleOfferInvalidError(redemptionCode);
        }
      }
    }

Menyatukan semuanya

Blok kode contoh di bagian ini menunjukkan contoh end-to-end lengkap dari tutorial library JavaScript Google Pay API, Otorisasi Pembayaran, Pembaruan Harga Dinamis, dan Kode Promo.

Tutorial

<div id="container"></div>

<script>
/**
 * Define the version of the Google Pay API referenced when creating your
 * configuration
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}
 */
const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

/**
 * Card networks supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm card networks supported by your site and gateway
 */
const allowedCardNetworks = ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"];

/**
 * Card authentication methods supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm your processor supports Android device tokens for your
 * supported card networks
 */
const allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"];

/**
 * Identify your gateway and your site's gateway merchant identifier
 *
 * The Google Pay API response will return an encrypted payment method capable
 * of being charged by a supported gateway after payer authorization
 *
 * @todo check with your gateway on the parameters to pass
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}
 */
const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    'gateway': 'example',
    'gatewayMerchantId': 'exampleGatewayMerchantId'
  }
};

/**
 * Describe your site's support for the CARD payment method and its required
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const baseCardPaymentMethod = {
  type: 'CARD',
  parameters: {
    allowedAuthMethods: allowedCardAuthMethods,
    allowedCardNetworks: allowedCardNetworks
  }
};

/**
 * Describe your site's support for the CARD payment method including optional
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const cardPaymentMethod = Object.assign(
  {},
  baseCardPaymentMethod,
  {
    tokenizationSpecification: tokenizationSpecification
  }
);

/**
 * An initialized google.payments.api.PaymentsClient object or null if not yet set
 *
 * @see {@link getGooglePaymentsClient}
 */
let paymentsClient = null;

/**
 * Configure your site's support for payment methods supported by the Google Pay
 * API.
 *
 * Each member of allowedPaymentMethods should contain only the required fields,
 * allowing reuse of this base request when determining a viewer's ability
 * to pay and later requesting a supported payment method
 *
 * @returns {object} Google Pay API version, payment methods supported by the site
 */
function getGoogleIsReadyToPayRequest() {
  return Object.assign(
      {},
      baseRequest,
      {
        allowedPaymentMethods: [baseCardPaymentMethod]
      }
  );
}

/**
 * Configure support for the Google Pay API
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}
 * @returns {object} PaymentDataRequest fields
 */
function getGooglePaymentDataRequest() {
  const paymentDataRequest = Object.assign({}, baseRequest);
  paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
  paymentDataRequest.merchantInfo = {
    // @todo a merchant ID is available for a production environment after approval by Google
    // See {@link https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist|Integration checklist}
    // merchantId: '12345678901234567890',
    merchantName: 'Example Merchant'
  };
  return paymentDataRequest;
}

/**
 * Return an active PaymentsClient or initialize
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}
 * @returns {google.payments.api.PaymentsClient} Google Pay API client
 */
function getGooglePaymentsClient() {
  if ( paymentsClient === null ) {
    paymentsClient = new google.payments.api.PaymentsClient({environment: 'TEST'});
  }
  return paymentsClient;
}

/**
 * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded
 *
 * Display a Google Pay payment button after confirmation of the viewer's
 * ability to pay.
 */
function onGooglePayLoaded() {
  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.isReadyToPay(getGoogleIsReadyToPayRequest())
      .then(function(response) {
        if (response.result) {
          addGooglePayButton();
          // @todo prefetch payment data to improve performance after confirming site functionality
          // prefetchGooglePaymentData();
        }
      })
      .catch(function(err) {
        // show error in developer console for debugging
        console.error(err);
      });
}

/**
 * Add a Google Pay purchase button alongside an existing checkout button
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}
 * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}
 */
function addGooglePayButton() {
  const paymentsClient = getGooglePaymentsClient();
  const button =
      paymentsClient.createButton({
        onClick: onGooglePaymentButtonClicked,
        allowedPaymentMethods: [baseCardPaymentMethod]
      });
  document.getElementById('container').appendChild(button);
}

/**
 * Provide Google Pay API with a payment amount, currency, and amount status
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}
 * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest
 */
function getGoogleTransactionInfo() {
  return {
    countryCode: 'US',
    currencyCode: 'USD',
    totalPriceStatus: 'FINAL',
    // set to cart total
    totalPrice: '1.00'
  };
}

/**
 * Prefetch payment data to improve performance
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/client#prefetchPaymentData|prefetchPaymentData()}
 */
function prefetchGooglePaymentData() {
  const paymentDataRequest = getGooglePaymentDataRequest();
  // transactionInfo must be set but does not affect cache
  paymentDataRequest.transactionInfo = {
    totalPriceStatus: 'NOT_CURRENTLY_KNOWN',
    currencyCode: 'USD'
  };
  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.prefetchPaymentData(paymentDataRequest);
}

/**
 * Show Google Pay payment sheet when Google Pay payment button is clicked
 */
function onGooglePaymentButtonClicked() {
  const paymentDataRequest = getGooglePaymentDataRequest();
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();

  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.loadPaymentData(paymentDataRequest)
      .then(function(paymentData) {
        // handle the response
        processPayment(paymentData);
      })
      .catch(function(err) {
        // show error in developer console for debugging
        console.error(err);
      });
}
/**
 * Process payment data returned by the Google Pay API
 *
 * @param {object} paymentData response from Google Pay API after user approves payment
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}
 */
function processPayment(paymentData) {
  // show returned data in developer console for debugging
    console.log(paymentData);
  // @todo pass payment token to your gateway to process payment
  // @note DO NOT save the payment credentials for future transactions,
  // unless they're used for merchant-initiated transactions with user
  // consent in place.
  paymentToken = paymentData.paymentMethodData.tokenizationData.token;
}</script>
<script async
  src="https://pay.google.com/gp/p/js/pay.js"
  onload="onGooglePayLoaded()"></script>

Mengizinkan Pembayaran

<div id="container"></div>

<script>
/**
 * Define the version of the Google Pay API referenced when creating your
 * configuration
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}
 */
const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

/**
 * Card networks supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm card networks supported by your site and gateway
 */
const allowedCardNetworks = ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"];

/**
 * Card authentication methods supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm your processor supports Android device tokens for your
 * supported card networks
 */
const allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"];

/**
 * Identify your gateway and your site's gateway merchant identifier
 *
 * The Google Pay API response will return an encrypted payment method capable
 * of being charged by a supported gateway after payer authorization
 *
 * @todo check with your gateway on the parameters to pass
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}
 */
const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    'gateway': 'example',
    'gatewayMerchantId': 'exampleGatewayMerchantId'
  }
};

/**
 * Describe your site's support for the CARD payment method and its required
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const baseCardPaymentMethod = {
  type: 'CARD',
  parameters: {
    allowedAuthMethods: allowedCardAuthMethods,
    allowedCardNetworks: allowedCardNetworks
  }
};

/**
 * Describe your site's support for the CARD payment method including optional
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const cardPaymentMethod = Object.assign(
  {},
  baseCardPaymentMethod,
  {
    tokenizationSpecification: tokenizationSpecification
  }
);

/**
 * An initialized google.payments.api.PaymentsClient object or null if not yet set
 *
 * @see {@link getGooglePaymentsClient}
 */
let paymentsClient = null;

/**
 * Configure your site's support for payment methods supported by the Google Pay
 * API.
 *
 * Each member of allowedPaymentMethods should contain only the required fields,
 * allowing reuse of this base request when determining a viewer's ability
 * to pay and later requesting a supported payment method
 *
 * @returns {object} Google Pay API version, payment methods supported by the site
 */
function getGoogleIsReadyToPayRequest() {
  return Object.assign(
      {},
      baseRequest,
      {
        allowedPaymentMethods: [baseCardPaymentMethod]
      }
  );
}

/**
 * Configure support for the Google Pay API
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}
 * @returns {object} PaymentDataRequest fields
 */
function getGooglePaymentDataRequest() {
  const paymentDataRequest = Object.assign({}, baseRequest);
  paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
  paymentDataRequest.merchantInfo = {
    // @todo a merchant ID is available for a production environment after approval by Google
    // See {@link https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist|Integration checklist}
    // merchantId: '12345678901234567890',
    merchantName: 'Example Merchant'
  };

  paymentDataRequest.callbackIntents = ["PAYMENT_AUTHORIZATION"];

  return paymentDataRequest;
}

/**
 * Return an active PaymentsClient or initialize
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}
 * @returns {google.payments.api.PaymentsClient} Google Pay API client
 */
function getGooglePaymentsClient() {
  if ( paymentsClient === null ) {
    paymentsClient = new google.payments.api.PaymentsClient({
    	environment: 'TEST',
      paymentDataCallbacks: {
      	onPaymentAuthorized: onPaymentAuthorized
      }
    });
  }
  return paymentsClient;
}

/**
 * Handles authorize payments callback intents.
 *
 * @param {object} paymentData response from Google Pay API after a payer approves payment through user gesture.
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData object reference}
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentAuthorizationResult}
 * @returns Promise<{object}> Promise of PaymentAuthorizationResult object to acknowledge the payment authorization status.
 */
function onPaymentAuthorized(paymentData) {
	return new Promise(function(resolve, reject){
    // handle the response
    processPayment(paymentData)
    .then(function() {
      resolve({transactionState: 'SUCCESS'});
    })
    .catch(function() {
      resolve({
        transactionState: 'ERROR',
        error: {
          intent: 'PAYMENT_AUTHORIZATION',
          message: 'Insufficient funds',
          reason: 'PAYMENT_DATA_INVALID'
        }
      });
  	});
  });
}

/**
 * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded
 *
 * Display a Google Pay payment button after confirmation of the viewer's
 * ability to pay.
 */
function onGooglePayLoaded() {
  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.isReadyToPay(getGoogleIsReadyToPayRequest())
      .then(function(response) {
        if (response.result) {
          addGooglePayButton();
        }
      })
      .catch(function(err) {
        // show error in developer console for debugging
        console.error(err);
      });
}

/**
 * Add a Google Pay purchase button alongside an existing checkout button
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}
 * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}
 */
function addGooglePayButton() {
  const paymentsClient = getGooglePaymentsClient();
  const button =
      paymentsClient.createButton({
        onClick: onGooglePaymentButtonClicked,
        allowedPaymentMethods: [baseCardPaymentMethod]
      });
  document.getElementById('container').appendChild(button);
}

/**
 * Provide Google Pay API with a payment amount, currency, and amount status
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}
 * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest
 */
function getGoogleTransactionInfo() {
  return {
        displayItems: [
        {
          label: "Subtotal",
          type: "SUBTOTAL",
          price: "11.00",
        },
      {
          label: "Tax",
          type: "TAX",
          price: "1.00",
        }
    ],
    countryCode: 'US',
    currencyCode: "USD",
    totalPriceStatus: "FINAL",
    totalPrice: "12.00",
    totalPriceLabel: "Total"
  };
}

/**
 * Show Google Pay payment sheet when Google Pay payment button is clicked
 */
function onGooglePaymentButtonClicked() {
  const paymentDataRequest = getGooglePaymentDataRequest();
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();

  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.loadPaymentData(paymentDataRequest);
}

/**
 * Process payment data returned by the Google Pay API
 *
 * @param {object} paymentData response from Google Pay API after user approves payment
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}
 */
function processPayment(paymentData) {
	return new Promise(function(resolve, reject) {
  	setTimeout(function() {
  		// @todo pass payment token to your gateway to process payment
  		paymentToken = paymentData.paymentMethodData.tokenizationData.token;

    	resolve({});
    }, 3000);
  });
}</script>
<script async
  src="https://pay.google.com/gp/p/js/pay.js"
  onload="onGooglePayLoaded()"></script>

Pembaruan Harga Dinamis

<div id="container"></div>

<script>
/**
 * Define the version of the Google Pay API referenced when creating your
 * configuration
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}
 */
const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

/**
 * Card networks supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm card networks supported by your site and gateway
 */
const allowedCardNetworks = ["AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"];

/**
 * Card authentication methods supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm your processor supports Android device tokens for your
 * supported card networks
 */
const allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"];

/**
 * Identify your gateway and your site's gateway merchant identifier
 *
 * The Google Pay API response will return an encrypted payment method capable
 * of being charged by a supported gateway after payer authorization
 *
 * @todo check with your gateway on the parameters to pass
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}
 */
const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    'gateway': 'example',
    'gatewayMerchantId': 'exampleGatewayMerchantId'
  }
};

/**
 * Describe your site's support for the CARD payment method and its required
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const baseCardPaymentMethod = {
  type: 'CARD',
  parameters: {
    allowedAuthMethods: allowedCardAuthMethods,
    allowedCardNetworks: allowedCardNetworks
  }
};

/**
 * Describe your site's support for the CARD payment method including optional
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const cardPaymentMethod = Object.assign(
  {},
  baseCardPaymentMethod,
  {
    tokenizationSpecification: tokenizationSpecification
  }
);

/**
 * An initialized google.payments.api.PaymentsClient object or null if not yet set
 *
 * @see {@link getGooglePaymentsClient}
 */
let paymentsClient = null;

/**
 * Configure your site's support for payment methods supported by the Google Pay
 * API.
 *
 * Each member of allowedPaymentMethods should contain only the required fields,
 * allowing reuse of this base request when determining a viewer's ability
 * to pay and later requesting a supported payment method
 *
 * @returns {object} Google Pay API version, payment methods supported by the site
 */
function getGoogleIsReadyToPayRequest() {
  return Object.assign(
      {},
      baseRequest,
      {
        allowedPaymentMethods: [baseCardPaymentMethod]
      }
  );
}

/**
 * Configure support for the Google Pay API
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}
 * @returns {object} PaymentDataRequest fields
 */
function getGooglePaymentDataRequest() {
  const paymentDataRequest = Object.assign({}, baseRequest);
  paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
  paymentDataRequest.merchantInfo = {
    // @todo a merchant ID is available for a production environment after approval by Google
    // See {@link https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist|Integration checklist}
    // merchantId: '12345678901234567890',
    merchantName: 'Example Merchant'
  };

  paymentDataRequest.callbackIntents = ["SHIPPING_ADDRESS",  "SHIPPING_OPTION", "PAYMENT_AUTHORIZATION"];
  paymentDataRequest.shippingAddressRequired = true;
  paymentDataRequest.shippingAddressParameters = getGoogleShippingAddressParameters();
  paymentDataRequest.shippingOptionRequired = true;

  return paymentDataRequest;
}

/**
 * Return an active PaymentsClient or initialize
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}
 * @returns {google.payments.api.PaymentsClient} Google Pay API client
 */
function getGooglePaymentsClient() {
  if ( paymentsClient === null ) {
    paymentsClient = new google.payments.api.PaymentsClient({
      environment: "TEST",
      merchantInfo: {
        merchantName: "Example Merchant",
        merchantId: "01234567890123456789"
      },
      paymentDataCallbacks: {
      	onPaymentAuthorized: onPaymentAuthorized,
        onPaymentDataChanged: onPaymentDataChanged
      }
    });
  }
  return paymentsClient;
}


function onPaymentAuthorized(paymentData) {
	return new Promise(function(resolve, reject){

  // handle the response
  processPayment(paymentData)
    .then(function() {
      resolve({transactionState: 'SUCCESS'});
    })
    .catch(function() {
    	resolve({
        transactionState: 'ERROR',
        error: {
          intent: 'PAYMENT_AUTHORIZATION',
          message: 'Insufficient funds',
          reason: 'PAYMENT_DATA_INVALID'
        }
      });
    });

  });
}

/**
 * Handles dynamic buy flow shipping address and shipping options callback intents.
 *
 * @param {object} itermediatePaymentData response from Google Pay API a shipping address or shipping option is selected in the payment sheet.
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#IntermediatePaymentData|IntermediatePaymentData object reference}
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}
 * @returns Promise<{object}> Promise of PaymentDataRequestUpdate object to update the payment sheet.
 */
function onPaymentDataChanged(intermediatePaymentData) {
  return new Promise(function(resolve, reject) {

   	let shippingAddress = intermediatePaymentData.shippingAddress;
    let shippingOptionData = intermediatePaymentData.shippingOptionData;
    let paymentDataRequestUpdate = {};

    if (intermediatePaymentData.callbackTrigger == "INITIALIZE" || intermediatePaymentData.callbackTrigger == "SHIPPING_ADDRESS") {
      if(shippingAddress.administrativeArea == "NJ")  {
        paymentDataRequestUpdate.error = getGoogleUnserviceableAddressError();
      }
      else {
        paymentDataRequestUpdate.newShippingOptionParameters = getGoogleDefaultShippingOptions();
        let selectedShippingOptionId = paymentDataRequestUpdate.newShippingOptionParameters.defaultSelectedOptionId;
        paymentDataRequestUpdate.newTransactionInfo = calculateNewTransactionInfo(selectedShippingOptionId);
      }
    }
    else if (intermediatePaymentData.callbackTrigger == "SHIPPING_OPTION") {
      paymentDataRequestUpdate.newTransactionInfo = calculateNewTransactionInfo(shippingOptionData.id);
    }

    resolve(paymentDataRequestUpdate);
  });
}

/**
 * Helper function to create a new TransactionInfo object.

 * @param string shippingOptionId respresenting the selected shipping option in the payment sheet.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}
 * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest
 */
function calculateNewTransactionInfo(shippingOptionId) {
        let newTransactionInfo = getGoogleTransactionInfo();

  let shippingCost = getShippingCosts()[shippingOptionId];
  newTransactionInfo.displayItems.push({
    type: "LINE_ITEM",
    label: "Shipping cost",
    price: shippingCost,
    status: "FINAL"
  });

  let totalPrice = 0.00;
  newTransactionInfo.displayItems.forEach(displayItem => totalPrice += parseFloat(displayItem.price));
  newTransactionInfo.totalPrice = totalPrice.toString();

  return newTransactionInfo;
}

/**
 * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded
 *
 * Display a Google Pay payment button after confirmation of the viewer's
 * ability to pay.
 */
function onGooglePayLoaded() {
  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.isReadyToPay(getGoogleIsReadyToPayRequest())
      .then(function(response) {
        if (response.result) {
          addGooglePayButton();
          // @todo prefetch payment data to improve performance after confirming site functionality
          // prefetchGooglePaymentData();
        }
      })
      .catch(function(err) {
        // show error in developer console for debugging
        console.error(err);
      });
}

/**
 * Add a Google Pay purchase button alongside an existing checkout button
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}
 * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}
 */
function addGooglePayButton() {
  const paymentsClient = getGooglePaymentsClient();
  const button =
      paymentsClient.createButton({
        onClick: onGooglePaymentButtonClicked,
        allowedPaymentMethods: [baseCardPaymentMethod]
      });
  document.getElementById('container').appendChild(button);
}

/**
 * Provide Google Pay API with a payment amount, currency, and amount status
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}
 * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest
 */
function getGoogleTransactionInfo() {
  return {
        displayItems: [
        {
          label: "Subtotal",
          type: "SUBTOTAL",
          price: "11.00",
        },
      {
          label: "Tax",
          type: "TAX",
          price: "1.00",
        }
    ],
    countryCode: 'US',
    currencyCode: "USD",
    totalPriceStatus: "FINAL",
    totalPrice: "12.00",
    totalPriceLabel: "Total"
  };
}

/**
 * Provide a key value store for shippping options.
 */
function getShippingCosts() {
        return {
    "shipping-001": "0.00",
    "shipping-002": "1.99",
    "shipping-003": "10.00"
  }
}

/**
 * Provide Google Pay API with shipping address parameters when using dynamic buy flow.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters|ShippingAddressParameters}
 * @returns {object} shipping address details, suitable for use as shippingAddressParameters property of PaymentDataRequest
 */
function getGoogleShippingAddressParameters() {
        return  {
        allowedCountryCodes: ['US'],
    phoneNumberRequired: true
  };
}

/**
 * Provide Google Pay API with shipping options and a default selected shipping option.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ShippingOptionParameters|ShippingOptionParameters}
 * @returns {object} shipping option parameters, suitable for use as shippingOptionParameters property of PaymentDataRequest
 */
function getGoogleDefaultShippingOptions() {
        return {
      defaultSelectedOptionId: "shipping-001",
      shippingOptions: [
        {
          "id": "shipping-001",
          "label": "Free: Standard shipping",
          "description": "Free Shipping delivered in 5 business days."
        },
        {
          "id": "shipping-002",
          "label": "$1.99: Standard shipping",
          "description": "Standard shipping delivered in 3 business days."
        },
        {
          "id": "shipping-003",
          "label": "$10: Express shipping",
          "description": "Express shipping delivered in 1 business day."
        },
      ]
  };
}

/**
 * Provide Google Pay API with a payment data error.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataError|PaymentDataError}
 * @returns {object} payment data error, suitable for use as error property of PaymentDataRequestUpdate
 */
function getGoogleUnserviceableAddressError() {
        return {
    reason: "SHIPPING_ADDRESS_UNSERVICEABLE",
    message: "Cannot ship to the selected address",
    intent: "SHIPPING_ADDRESS"
        };
}

/**
 * Prefetch payment data to improve performance
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/client#prefetchPaymentData|prefetchPaymentData()}
 */
function prefetchGooglePaymentData() {
  const paymentDataRequest = getGooglePaymentDataRequest();
  // transactionInfo must be set but does not affect cache
  paymentDataRequest.transactionInfo = {
    totalPriceStatus: 'NOT_CURRENTLY_KNOWN',
    currencyCode: 'USD'
  };
  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.prefetchPaymentData(paymentDataRequest);
}


/**
 * Show Google Pay payment sheet when Google Pay payment button is clicked
 */
function onGooglePaymentButtonClicked() {
  const paymentDataRequest = getGooglePaymentDataRequest();
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();

  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.loadPaymentData(paymentDataRequest);
}

/**
 * Process payment data returned by the Google Pay API
 *
 * @param {object} paymentData response from Google Pay API after user approves payment
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}
 */
function processPayment(paymentData) {
	return new Promise(function(resolve, reject) {
  	setTimeout(function() {
    	// show returned data in developer console for debugging
   	 console.log(paymentData);
  		// @todo pass payment token to your gateway to process payment
  		paymentToken = paymentData.paymentMethodData.tokenizationData.token;

    	resolve({});
    }, 3000);
  });
}</script>
<script async
  src="https://pay.google.com/gp/p/js/pay.js"
  onload="onGooglePayLoaded()"></script>

Penawaran

<div id="container"></div>

<script>
/**
 * Please note: The Promo Code callback is extremely flexible. This example
 * implementation is only one of many ways to interface with it.
 *
 * In production, your promo codes and payment logic should be securely
 * processed on your server, not client-side as in this example. Use AJAX to
 * pass this information to the payment sheet.
 */

/**
 * Define the version of the Google Pay API referenced when creating your
 * configuration
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|apiVersion in PaymentDataRequest}
 */
const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0
};

/**
 * Define valid promo code strings
 *
 * This object paradigm is not necessary to implement Promo Codes, but provides
 * an example of how to implement promo code behavior in a modular way.
 *
 * In production, your promo codes should be securely processed on your server,
 * not client-side as in this example.
 *
 * code: the way the promo code itself is displayed in the payment sheet
 * description: the description provided to the user on the payment sheet
 * function: the function used to calculate the price change
 * value: the value passed into the above function. This value should be
 * negative for a discount.
 */

const validPromoCodes = {
  SOMEPROMOCODE: {
    code: 'SOMEPROMOCODE',
    description: '20% off all products!',
    function: percentageDiscount,
    value: -20 // value should be negative for a discount
  },
  ANOTHERPROMOCODE: {
    code: 'ANOTHERPROMOCODE',
    description: '$5 dollars off!',
    function: staticDiscount,
    value: -5.00 // value should be negative for a discount
  }
}

/**
 * Card networks supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm card networks supported by your site and gateway
 */
const allowedCardNetworks = ['AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA'];

/**
 * Card authentication methods supported by your site and your gateway
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 * @todo confirm your processor supports Android device tokens for your
 * supported card networks
 */
const allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];

/**
 * Identify your gateway and your site's gateway merchant identifier
 *
 * The Google Pay API response will return an encrypted payment method capable
 * of being charged by a supported gateway after payer authorization
 *
 * @todo check with your gateway on the parameters to pass
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#gateway|PaymentMethodTokenizationSpecification}
 */
const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    gateway: 'example',
    gatewayMerchantId: 'exampleGatewayMerchantId'
  }
};

/**
 * Describe your site's support for the CARD payment method and its required
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const baseCardPaymentMethod = {
  type: 'CARD',
  parameters: {
    allowedAuthMethods: allowedCardAuthMethods,
    allowedCardNetworks: allowedCardNetworks
  }
};

/**
 * Describe your site's support for the CARD payment method including optional
 * fields
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#CardParameters|CardParameters}
 */
const cardPaymentMethod = Object.assign(
  {},
  baseCardPaymentMethod,
  {
    tokenizationSpecification: tokenizationSpecification
  }
);

/**
 * An initialized google.payments.api.PaymentsClient object or null if not yet set
 *
 * @see {@link getGooglePaymentsClient}
 */
let paymentsClient = null;

/**
 * Configure your site's support for payment methods supported by the Google Pay
 * API.
 *
 * Each member of allowedPaymentMethods should contain only the required fields,
 * allowing reuse of this base request when determining a viewer's ability
 * to pay and later requesting a supported payment method
 *
 * @returns {object} Google Pay API version, payment methods supported by the site
 */
function getGoogleIsReadyToPayRequest() {
  return Object.assign(
      {},
      baseRequest,
      {
        allowedPaymentMethods: [baseCardPaymentMethod]
      }
  );
}

/**
 * Configure support for the Google Pay API
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#PaymentDataRequest|PaymentDataRequest}
 * @returns {object} PaymentDataRequest fields
 */
function getGooglePaymentDataRequest() {
  const paymentDataRequest = Object.assign({}, baseRequest);
  paymentDataRequest.allowedPaymentMethods = [cardPaymentMethod];
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();
  paymentDataRequest.merchantInfo = {
    // @todo a merchant ID is available for a production environment after approval by Google
    // See {@link https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist|Integration checklist}
    // merchantId: '12345678901234567890',
    merchantName: 'Example Merchant'
  };

  paymentDataRequest.callbackIntents = ['OFFER'];
  paymentDataRequest.shippingAddressRequired = false;
  paymentDataRequest.shippingAddressParameters = getGoogleShippingAddressParameters();

  return paymentDataRequest;
}

/**
 * Return an active PaymentsClient or initialize
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}
 * @returns {google.payments.api.PaymentsClient} Google Pay API client
 */
function getGooglePaymentsClient() {
  if ( paymentsClient === null ) {
    paymentsClient = new google.payments.api.PaymentsClient({
      environment: 'TEST',
      merchantInfo: {
        merchantName: 'Example Merchant',
        merchantId: '01234567890123456789'
      },
      paymentDataCallbacks: {
        onPaymentDataChanged: onPaymentDataChanged
      }
    });
  }
  return paymentsClient;
}

/**
 * These functions handle adding valid promo codes to the payment sheet
 * as well as adjusting the display items to match.
 *
 * To add a new promo code, create a new function per this template
 * and define it as valid in the onPaymentDataChanged function.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}
 * @param {string} redemptionCode string representing the promo code to apply
 * @param {string} description string representing the description to show
 * @param {int} discountPercentage int representing the percentage to discount.
 * Please note the discount value should be negative. Ex: -20 = 20% discount.
 * @param {object} PaymentDataRequestUpdate object representing
 * the current state of the payment data request.
 * @returns {object} PaymentDataRequestUpdate object to update the
 * payment sheet with new transaction info and offer data.
 */

function percentageDiscount(promoParameters, paymentDataRequestUpdate) {
  // set variables
  let originalTransactionInfo = getGoogleTransactionInfo();
  /* because this promo code calculates a % of original prices,
   * we need to get the original transaction info */
  let newTransactionInfo = paymentDataRequestUpdate.newTransactionInfo;
  let discount = 0;

    // update promo code and description
  paymentDataRequestUpdate.newOfferInfo.offers.push({
    redemptionCode: promoParameters['code'],
    description: promoParameters['description']
  });

  // calculate discount (from original transaction items only)
  originalTransactionInfo.displayItems.forEach(function(displayItem) {
    discount += parseFloat(displayItem.price) * promoParameters['value'] * 0.01;
  });

  // add displayItem with new discount
  newTransactionInfo.displayItems.push({
      label: promoParameters['code'],
      price: discount.toFixed(2),
      type: 'LINE_ITEM'
  });

  return paymentDataRequestUpdate;
}

function staticDiscount(promoParameters, paymentDataRequestUpdate) {
  // set variables
  let newTransactionInfo = paymentDataRequestUpdate.newTransactionInfo;

    // update promo code and description
  paymentDataRequestUpdate.newOfferInfo.offers.push({
    redemptionCode: promoParameters['code'],
    description: promoParameters['description']
  });

  // add displayItem with new discount
  newTransactionInfo.displayItems.push({
      label: promoParameters['code'],
      price: promoParameters['value'].toFixed(2),
      type: 'LINE_ITEM'
  });

  return paymentDataRequestUpdate;
}

/**
 * Handles offer callback intents.
 *
 * @param {object} itermediatePaymentData response from Google Pay API when a promo code is entered in the google pay payment sheet.
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#IntermediatePaymentData|IntermediatePaymentData object reference}
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataRequestUpdate|PaymentDataRequestUpdate}
 * @returns Promise<{object}> Promise of PaymentDataRequestUpdate object to update the payment sheet with new transaction info and offer data.
 */
function onPaymentDataChanged(intermediatePaymentData) {
  return new Promise(function(resolve, reject) {

    let redemptionCodes = new Set();
    let shippingOptionData = intermediatePaymentData.shippingOptionData;
    let paymentDataRequestUpdate = {};
    paymentDataRequestUpdate.newTransactionInfo = getGoogleTransactionInfo();

    // ensure that promo codes set is unique
    if(typeof intermediatePaymentData.offerData != 'undefined') {
      redemptionCodes = new Set(intermediatePaymentData.offerData.redemptionCodes);
    }

    // validate promo codes and add descriptions to payment sheet
    if (intermediatePaymentData.callbackTrigger === 'OFFER') {
      paymentDataRequestUpdate.newOfferInfo = {};
      paymentDataRequestUpdate.newOfferInfo.offers = [];
      for (redemptionCode of redemptionCodes) {
        if (validPromoCodes[redemptionCode]) {
          paymentDataRequestUpdate = validPromoCodes[redemptionCode].function(
            validPromoCodes[redemptionCode],
            paymentDataRequestUpdate
          );
        } else {
          paymentDataRequestUpdate.error = getGoogleOfferInvalidError(redemptionCode);
        }
      }
    }
    /**
     * Update item costs and total.
     *
     * In production, this final calculation should always be calculated
     * server-side to ensure it matches the price that the merchant sends to the
     * processor.
     */
    paymentDataRequestUpdate.newTransactionInfo = calculateNewTransactionInfo(
      paymentDataRequestUpdate.newTransactionInfo
    )

    resolve(paymentDataRequestUpdate);
  });
}

/**
 * Helper function to update the TransactionInfo object.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}
 * @param {object} transactionInfo respresenting the selected shipping option in the payment sheet.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}
 * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest
 */
function calculateNewTransactionInfo(newTransactionInfo) {
  // calculate the new totalPrice from display items
  let totalPrice = 0.00;
  newTransactionInfo.displayItems.forEach(
    function(displayItem) {
      totalPrice += parseFloat(displayItem.price);
    }
  );
  // Note: newTransactionInfo.totalPrice must be a string
  newTransactionInfo.totalPrice = totalPrice.toFixed(2);

  return newTransactionInfo;
}

/**
 * Initialize Google PaymentsClient after Google-hosted JavaScript has loaded
 *
 * Display a Google Pay payment button after confirmation of the viewer's
 * ability to pay.
 */
function onGooglePayLoaded() {
  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.isReadyToPay(getGoogleIsReadyToPayRequest())
      .then(function(response) {
        if (response.result) {
          addGooglePayButton();
          // @todo prefetch payment data to improve performance after confirming site functionality
          // prefetchGooglePaymentData();
        }
      })
      .catch(function(err) {
        // show error in developer console for debugging
        console.error(err);
      });
}

/**
 * Add a Google Pay purchase button alongside an existing checkout button
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ButtonOptions|Button options}
 * @see {@link https://developers.google.com/pay/api/web/guides/brand-guidelines|Google Pay brand guidelines}
 */
function addGooglePayButton() {
  const paymentsClient = getGooglePaymentsClient();
  const button =
      paymentsClient.createButton({
        onClick: onGooglePaymentButtonClicked,
        allowedPaymentMethods: [baseCardPaymentMethod]
      });
  document.getElementById('container').appendChild(button);
}

/**
 * Provide Google Pay API with a payment amount, currency, and amount status
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo|TransactionInfo}
 * @returns {object} transaction info, suitable for use as transactionInfo property of PaymentDataRequest
 */
function getGoogleTransactionInfo() {
  return {
        displayItems: [
        {
          label: 'Subtotal',
          type: 'SUBTOTAL',
          price: '11.00',
          status: 'FINAL'
        },
        {
          label: 'Tax',
          type: 'TAX',
          price: '1.00'
        }
    ],
    currencyCode: 'USD',
    totalPriceStatus: 'FINAL',
    totalPrice: '12.00',
    totalPriceLabel: 'Total'
  };
}

/**
 * Provide Google Pay API with shipping address parameters.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/request-objects#ShippingAddressParameters|ShippingAddressParameters}
 * @returns {object} shipping address details, suitable for use as shippingAddressParameters property of PaymentDataRequest
 */
function getGoogleShippingAddressParameters() {
        return  {
        allowedCountryCodes: ['US', 'UK', 'FR', 'CA', 'MX', 'GA'],
    phoneNumberRequired: false
  };
}

/**
 * Provide Google Pay API with an invalid offer error.
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentDataError|PaymentDataError}
 * @returns {object} payment data error, suitable for use as error property of PaymentDataRequestUpdate
 */
function getGoogleOfferInvalidError(redemptionCode) {
        return {
    reason: 'OFFER_INVALID',
    message: redemptionCode + ' is not a valid promo code.',
    intent: 'OFFER'
        };
}

/**
 * Prefetch payment data to improve performance
 *
 * @see {@link https://developers.google.com/pay/api/web/reference/client#prefetchPaymentData|prefetchPaymentData()}
 */
function prefetchGooglePaymentData() {
  const paymentDataRequest = getGooglePaymentDataRequest();
  // transactionInfo must be set but does not affect cache
  paymentDataRequest.transactionInfo = {
    totalPriceStatus: 'NOT_CURRENTLY_KNOWN',
    currencyCode: 'USD'
  };
  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.prefetchPaymentData(paymentDataRequest);
}


/**
 * Show Google Pay payment sheet when Google Pay payment button is clicked
 */
function onGooglePaymentButtonClicked() {
  const paymentDataRequest = getGooglePaymentDataRequest();
  paymentDataRequest.transactionInfo = getGoogleTransactionInfo();

  const paymentsClient = getGooglePaymentsClient();
  paymentsClient.loadPaymentData(paymentDataRequest)
      .then(function(paymentData) {
        // handle the response
        processPayment(paymentData);
      })
      .catch(function(err) {
        // show error in developer console for debugging
        console.error(err);
      });
}

/**
 * Process payment data returned by the Google Pay API
 * In a production environment, this function should always be implemented
 * server-side.
 *
 * @param {object} paymentData response from Google Pay API after user approves payment
 * @see {@link https://developers.google.com/pay/api/web/reference/response-objects#PaymentData|PaymentData object reference}
 */
function processPayment(paymentData) {
  // show returned data in developer console for debugging
    console.log(paymentData);
  // @todo pass payment token to your gateway to process payment
  paymentToken = paymentData.paymentMethodData.tokenizationData.token;
}</script>
<script async
  src="https://pay.google.com/gp/p/js/pay.js"
  onload="onGooglePayLoaded()"></script>
Tujuan: Lanjutkan ke checklist Integrasi kami untuk memvalidasi integrasi Anda dan meminta akses produksi.