自学内容网 自学内容网

【Golang】国内接入stripe支付

前言

接入了airswift支付,又来接stripe支付,真是被折腾的够呛。虽然整体流程是一样的,每个支付方式的逻辑和代码都有差异,希望自己的代码帮助大家少浪费时间

支付流程

1、客户端到服务器下订单,服务器向支付服务下支付订单
2、客户端拿到订单信息,跳转到支付web取支付
3、服务器查阅支付订单信息,或者接受回调,更新订单信息,初始化服务

stripe

服务器端

向stripe支付获取clientSecret给客户端取支付,ID为订单标识

package main

import (
"fmt"
"github.com/shopspring/decimal"
"github.com/stripe/stripe-go/v80"
"log"

"github.com/stripe/stripe-go/v80/paymentintent"
)

func main() {
d := decimal.NewFromFloat(123.456789) // 将数值除以1并保留两位小数
formatted := fmt.Sprintf("%.2f", d.InexactFloat64())

log.Println(d.InexactFloat64())
// 使用Sprintf格式化为两位小数
fmt.Println(formatted)
// 设置 Stripe 的 API 密钥
stripe.Key = "sk_test_XXXXX"

params2 := &stripe.PaymentIntentParams{
Amount:   stripe.Int64(50),
Currency: stripe.String(string(stripe.CurrencyUSD)),
AutomaticPaymentMethods: &stripe.PaymentIntentAutomaticPaymentMethodsParams{
Enabled: stripe.Bool(true),
},
}

pi, err := paymentintent.New(params2)
log.Printf("pi.New: %v", pi.ClientSecret)

if err != nil {
log.Printf("pi.New: %v", err)
return
}

log.Printf("%v %v", pi.ID, pi.ClientSecret)
}

后话

每个支付的接入和参数都不同,接入的过程需要投入精力和时间,期望我的分享能帮助到你。


原文地址:https://blog.csdn.net/Qyee16/article/details/143018928

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!