Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memproses pembayaran
Untuk memproses pembayaran, Anda memerlukan dua sumber daya:
-
Instrumen pembayaran — Dompet kripto tertanam dengan Coinbase atau Stripe. Lihat Membuat instrumen pembayaran.
-
Sesi pembayaran — Sesi terbatas waktu yang secara opsional memberlakukan anggaran pengeluaran. Lihat Membuat sesi pembayaran.
Setelah keduanya ada, hubungi ProcessPayment dengan ID sesi pembayaran, ID instrumen pembayaran, dan payload pembayaran. Layanan memvalidasi permintaan, memeriksa anggaran, menandatangani transaksi pada blockchain yang sesuai, dan mengembalikan hasil pembayaran yang ditandatangani. Untuk skema permintaan dan respons lengkap, lihat ProcessPayment di Referensi API.
AgentCore pembayaran mendukung dua protokol pembayaran, yang Anda pilih dengan paymentType parameter:
-
CRYPTO_X402— Protokol x402. Berikan payload pembayaran x402 merchantpaymentInput.cryptoX402, dan agen akan mencoba kembali permintaan dengan bukti yang ditandatangani di header.X-PAYMENT -
MPP— Protokol Pembayaran Mesin (MPP). TeruskanWWW-Authenticate: Paymenttantangan pedagang masukpaymentInput.mpp, dan agen akan mencoba kembali permintaan dengan kredensi yang dikembalikan diAuthorizationheader.
Pilih paymentType yang cocok dengan protokol yang digunakan pedagang dalam 402 Payment Required responsnya. Untuk detail permintaan dan tanggapan x402, lihat Memb ayar permintaan pembayaran x402. Untuk detail permintaan dan tanggapan MPP, lihat Memb ayar tantangan MPP.
Tip
Anda dapat mengotomatiskan langkah-langkah di halaman ini dengan keterampilan AgentCore Pembayaran di toolkit AWS agen. Keterampilan ini adalah bagian dari plugin aws-agents dan memungkinkan agen pengkodean AI membuat Manajer Pembayaran, konektor, penyedia kredensia, instrumen pembayaran, dan sesi menggunakan agentcore CLI, dan menambahkan alat pembayaran proses ke agen Anda. Untuk detailnya, lihat Quickstart dan toolkit AWS agen aktif. GitHub
Ada lima cara untuk memanggil ProcessPayment API:
contoh
Bayar permintaan pembayaran x402
Ketika pedagang merespons dengan payload pembayaran x402 dalam 402 Payment Required tanggapannya, Anda meneruskan payload tersebut ke AgentCore pembayaran, dan AgentCore pembayaran mengembalikan bukti yang ditandatangani. Anda menyalin payload merchant kepaymentInput.cryptoX402, dan AgentCore pembayaran memeriksa anggaran, menandatangani transaksi dengan dompet, dan mengembalikan bukti yang ditandatangani. Anda melampirkan bukti ke X-PAYMENT header dan mencoba lagi permintaan asli.
Permintaan dan tanggapan
Berikan bidang berikut dipaymentInput.cryptoX402:
-
version— Versi protokol x402 (misalnya,1atau2). Wajib. -
payload— Persyaratan pembayaran x402 pedagang, diteruskan sebagai objek JSON. Ini menentukan bidangschemenetwork,maxAmountRequired,asset,payTo,, dan lainnya dari402respons pedagang. Wajib. -
permit2AllowanceLimit— Tunjangan maksimum on-chain Permit2 untuk diberikan, dalam denominasi terkecil aset. Tidak wajib. Tetapkan ini hanya untuk skemaupto(terukur), yang diselesaikan melalui kontrak Permit2; memasoknya untukexactskema adalah kesalahan validasi. Lihat tunjangan Permit2 untuk pembayaran hingga.
Respons mengembalikan bidang berikut dipaymentOutput.cryptoX402:
-
version— Versi protokol x402. -
payload— Bukti transaksi yang ditandatangani, sebagai objek JSON. Lampirkan keX-PAYMENTheader dan coba lagi permintaan asli.
A status of PROOF_GENERATED menunjukkan bahwa transaksi telah ditandatangani dan bukti pembayaran disertakan di dalamnyapaymentOutput.
Skema
Nama muatan x402 a. scheme AgentCore pembayaran mendukung skema berikut:
-
exact— Membayar jumlah tetap yang ditentukan dalam muatan pedagang. Ini adalah skema default, dan tidak memerlukan penanganan tunjangan. -
upto— Membayar jumlah yang diukur hingga batas tertentu. Skema ini diselesaikan melalui kontrak Permit2, sehingga dompet pembayar harus memberikan tunjangan Permit2. Lihat tunjangan Permit2 untuk pembayaran hingga.
Tunjangan Permit2 untuk pembayaran hingga
S upto kema diselesaikan melalui kontrak Permit2, yang memindahkan dana dengan. transferFrom Dompet pembayar harus terlebih dahulu memberikan tun ERC-20 jangan Permit2, atau penyelesaian gagal dengan kesalahan pras Permit2-allowance yarat. Hibah ini mengikuti model persetujuan on-chain yang sama dengan persetujuan Permit2 langsung. Untuk informasi lebih lanjut, lihat Uniswap Permit2
Untuk menangani ini, atur permit2AllowanceLimit ke tunjangan maksimum dalam denominasi terkecil aset (misalnya, 1000000 = 1 USDC pada 6 desimal). Untuk memberikan tunjangan tak terbatas, berikan uint256 nilai maksimum sebagai string:115792089237316195423570985008687907853269984665640564039457584007913129639935. Saat Anda menyetel bidang ini, AgentCore pembayaran mengirimkan approve transaksi on-chain sebelum menandatangani. Transaksi ini menimbulkan biaya jaringan blockchain (gas) yang dibayarkan dari saldo token asli dompet.
Karena approve menetapkan, alih-alih menambah, tunjangan dompet, ditetapkan permit2AllowanceLimit hanya ketika dompet perlu disetujui (misalnya, upto pembayaran pertamanya) untuk menghindari transaksi on-chain yang berlebihan. Hilangkan bidang untuk melewatkan penanganan tunjangan sepenuhnya. Bidang ini hanya berlaku untuk upto skema; memasokkannya untuk exact skema adalah kesalahan validasi.
Contoh berikut memproses upto pembayaran dan memberikan tunjangan 1 USDC ke Permit2. Karenaupto, maxAmountRequired membawa plafon yang diiklankan pedagang dalam 402 tanggapannya, dan extra.facilitatorAddress merupakan fasilitator penyelesaian dari respons yang sama.
contoh
Batasan
-
Bid
permit2AllowanceLimitang ini hanya valid untukuptoskema. Menyediakannya untukexactskema mengembalikan aValidationException.
Untuk kesalahan validasi permintaan pembayaran x402 dan penyelesaiannya, lihat kesalahan permintaan pembayaran x402. Untuk kesalahan pemrosesan pembayaran dan penyelesaiannya, lihat Kesalahan pemrosesan pembayaran.
Membayar tantangan MPP
Ketika seorang pedagang mengembalikan WWW-Authenticate: Payment tantangan dalam 402 Payment Required tanggapannya, teruskan tantangan kata demi kata. paymentInput.mpp AgentCore pembayaran mengurai tantangan, memeriksa anggaran, menandatangani dengan dompet, dan mengembalikan nilai header siap dikirimAuthorization. AgentCore pembayaran menangani penguraian header, decoding base64url, dan penandatanganan, sehingga Anda tidak perlu melakukan operasi ini.
Permintaan dan tanggapan
Berikan bidang berikut dipaymentInput.mpp:
-
version— Versi protokol MPP (misalnya,1). Wajib. -
wwwAuthenticateHeaders— NilaiWWW-Authenticate: Paymentheader mentah dari402respons pedagang, diteruskan kata demi kata. Berikan tepat satu header. Wajib. -
buyerPaysGasFees— Apakah akan mengizinkan pembayaran biaya jaringan blockchain (gas) dari dompet pembeli ketika penjual tidak mensponsori mereka. Tidak wajib. Dihilangkan ataufalseberarti pembeli menolak. Lihat Per setujuan biaya jaringan.
Respons mengembalikan bidang berikut dipaymentOutput.mpp:
-
version— Versi protokol MPP. -
selectedPaymentId— Tantidangan yang dibayar AgentCore pembayaran, bergema dari tantangan input sehingga Anda dapat mengkorelasikan hasilnya tanpa mendekode kredensialnya. -
paymentCredential— NilaiAuthorizationheader siap dikirim, dalam formulir.Payment <base64url-token>Lampirkan sebagaiAuthorizationheader dan coba lagi permintaan asli.
penting
Jangan memecahkan kode atau memodifikasipaymentCredential. Ini menyematkan tantangan asli dan muatan yang ditandatangani, dan HMAC pedagang mengikat ke byte yang tepat. Lampirkan nilai seperti yang dikembalikan.
Contoh berikut memproses tantangan MPP. Atur --payment-type "MPP" dan teruskan WWW-Authenticate: Payment tantangan pedagang kata demi kata dalam paymentInput.mpp.wwwAuthenticateHeaders (tepat satu header).
contoh
Metode dan token
Tantangan MPP menyebutkan pembayaranmethod. AgentCore pembayaran mendukung metode berikut untuk charge maksud:
-
evm— Hanya USDC kanonik. Tantangannya harus mencakupmethodDetails.chainIddanrealm. -
tempo— Setiap rantai Tempo, dipilih olehmethodDetails.chainId, menggunakan USDC-equivalent token yang dikenali jaringan. -
solana—devnetJaringanmainnetdan, dengan biaya yang disponsori server saja.
Jaringan blockchain instrumen pembayaran harus sesuai dengan metode tantangan. Dukungan penyedia tergantung pada jenis konektor:
| Metode | CDP Coinbase | Garis (Privy) |
|---|---|---|
|
|
Didukung |
Didukung |
|
|
Didukung |
Didukung |
|
|
Tidak didukung |
Didukung |
Persetujuan biaya jaringan
Biaya jaringan blockchain (gas) terpisah dari jumlah tantangan. Sebuah tantangan mengiklankan siapa yang mensponsori mereka melalui methodDetails.feePayer benderanya:
-
methodDetails.feePayer=true— Penjual mensponsori biaya jaringan.buyerPaysGasFeestidak berpengaruh. -
methodDetails.feePayer=falseatau absen — Pembeli membayar biaya jaringan dari dompet pembayaran, selain jumlah pembayaran. Karena biaya itu tidak terlihat dalam jumlah tantangan, tanda AgentCore pembayaran hanya jika Anda menetapkanbuyerPaysGasFees=true; jika tidak maka akan mengembalikan aValidationException. Untuktempometode ini, persetujuan ini diperlukan setiap kali penjual tidak mensponsori biaya.
evmMetode ini tidak memerlukan persetujuan biaya, karena fasilitator menyiarkan transaksi dan membayar gas. solanaMetode ini hanya mendukung biaya yang disponsori server hari ini.
Batasan
-
AgentCore pembayaran memenuhi tepat satu tantangan per
ProcessPaymentpanggilan. Berikan satu header diwwwAuthenticateHeaders. -
Hanya mode
chargemaksud dan tarik yang didukung. -
Tantangan MPP berumur pendek. Jika tantangan telah kedaluwarsa, AgentCore pembayaran mengembalikan a
ValidationExceptiondan tidak menghabiskan anggaran. Minta sumber daya berbayar lagi untuk mendapatkan tantangan baru, lalu coba lagi.
Untuk kesalahan validasi tantangan MPP dan resolusinya, lihat kesalahan tantangan MPP.
Integrasi kerangka kerja
Untuk dokumentasi referensi lengkap termasuk penanganan kesalahan, opsi konfigurasi, dan alat bawaan, lihat Integrasi kerangka kerja.
| Kerangka Kerja | Jenis integrasi | Referensi |
|---|---|---|
|
Plugin (berbasis kait) |
Penanganan interupsi, opsi konfigurasi, alat bawaan |
|
|
Middleware (membungkus panggilan alat) |
Panggilan balik kesalahan, daftar izin, dukungan asinkron, opsi konfigurasi |