Golang Gin接入支付宝H5网页支付

安装依赖

go get github.com/smartwalle/alipay/v3

发起账单接口

func FinishAliPayment(c *gin.Context) {
	appG := app.Gin{C: c}
	client, _ := alipay.New(setting.AppSetting.AliAppId, setting.AppSetting.AliPrivateKey, false)
	client.LoadAppPublicCertFromFile("conf/appCertPublicKey_2016091400512715.crt") // 加载应用公钥证书
	client.LoadAliPayRootCertFromFile("conf/alipayRootCert.crt")                   // 加载支付宝根证书
	client.LoadAliPayPublicCertFromFile("conf/alipayCertPublicKey_RSA2.crt")       // 加载支付宝公钥证书
	var p = alipay.TradeWapPay{}
	p.NotifyURL = setting.AppSetting.Notify
	p.ReturnURL = "http://test.yptech.tv"
	p.Subject = "*****"
	p.OutTradeNo = "46464613131314464"
	p.TotalAmount = "0.01"
	p.ProductCode = "QUICK_WAP_PAY"
	url, err := client.TradeWapPay(p)
	if err != nil {
		fmt.Println("pay client.TradeAppPay error:", err)
		return
	}
	//logging.Info(url)
	binary, _ := url.MarshalBinary()
	fmt.Println(string(binary))
	data := make(map[string]interface{})
	data["url"] = string(binary)
	appG.Response(http.StatusOK, 200, data)

}

回调接口(接收通知接口)

func AliPayNotify(c *gin.Context) {
	client, _ := alipay.New(setting.AppSetting.AliAppId, setting.AppSetting.AliPrivateKey, false)
	client.LoadAppPublicCertFromFile("conf/appCertPublicKey_2016091400512715.crt") // 加载应用公钥证书
	client.LoadAliPayRootCertFromFile("conf/alipayRootCert.crt")                   // 加载支付宝根证书
	client.LoadAliPayPublicCertFromFile("conf/alipayCertPublicKey_RSA2.crt")       // 加载支付宝公钥证书
	fmt.Println(c.Request.Body)
	var noti, _ = client.GetTradeNotification(c.Request)
	if noti != nil {
		fmt.Println("交易状态为:", noti.TradeStatus)
	}
	bs, _ := json.Marshal(noti)
	var out bytes.Buffer
	json.Indent(&out, bs, "", "\t")
	fmt.Printf("data=%v\n", out.String())
	c.String(http.StatusOK, "%s", "success")
}

参考文献:

https://opendocs.alipay.com/open/203/105286icon-default.png?t=M1L8https://opendocs.alipay.com/open/203/105286

https://github.com/smartwalle/alipayhttps://github.com/smartwalle/alipay

https://zhuanlan.zhihu.com/p/315591452https://zhuanlan.zhihu.com/p/315591452

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值