package main

import (
	"fmt"
	"log"

	stripe "github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/charge"
)

func main() {
	stripe.Key = "sk_test_your_secret_key_here"

	params := &stripe.ChargeParams{
		Amount:   stripe.Int64(1000),
		Currency: stripe.String("usd"),
		Desc:     stripe.String("Example charge"),
	}

	params.SetSource("tok_visa")

	ch, err := charge.New(params)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("Payment successful, charge ID:", ch.ID)
}

在代码中,首先设置了 Stripe API 的密钥,然后创建了一个 ChargeParams 对象,用于指定付款的金额、货币类型和描述信息。设置付款的来源,这里使用的是一个测试用的信用卡令牌 tok_visa。最后,使用 charge.New 方法来提交付款请求,如果付款成功,将会返回一个 Charge 对象,其中包含付款的相关信息,如付款 ID、金额、状态等。