支付宝支付功能——基于go语言实现

文章目录

  • 一、相关链接
    • 1. 文档
    • 2. 项目地址
    • 3. 开发步骤
  • 二、设置公钥私钥 回调url
    • 1. 设置公私钥
    • 2. go生成订单


一、相关链接

因为只有注册公司以后才能申请支付功能,所以支付宝给了一个沙箱环境供我们测试

1. 文档

https://opendocs.alipay.com/common/02kkv7

2. 项目地址

https://github.com/smartwalle/alipay

3. 开发步骤

  1. 设置公钥和私钥
  2. 设置回调

二、设置公钥私钥 回调url

1. 设置公私钥

https://opendocs.alipay.com/common/02kipl

生成的公私钥用来给支付宝解密 生成公钥给我们解密,
非对称加解密流程:
支付宝支付功能——基于go语言实现_第1张图片
即使自己的私钥泄露被伪造了A请求也不会信任这个请求的,因为支付宝的私钥和自己的私钥不匹配

直接填写即可 - 支付宝的安全dddd
支付宝支付功能——基于go语言实现_第2张图片

2. go生成订单

github项目:https://github.com/smartwalle/alipay

这个项目也支持其他支付方式

go代码演示:

package main

import (
	"fmt"
	"github.com/smartwalle/alipay/v3"
	"net/url"
)

func main() {
	appID := ""//你的appID
	privateKey := ""//你的私钥
	aliPhublicKey := ""//支付宝的公钥
	var client, err = alipay.New(appID, privateKey, false)
	if err != nil {
		panic(err)
	}
	err = client.LoadAliPayPublicKey(aliPhublicKey)
	if err != nil {
		panic(err)
	}
	//var p = alipay.TradeWapPay{}
	var p=alipay.TradePagePay{}
	p.NotifyURL = "https://www.baidu.com"//支付宝回调
	p.ReturnURL = "https://www.baidu.com"//支付后调转页面
	p.Subject = "Jzin-订单支付" //标题
	p.OutTradeNo = "jzin"   //传递一个唯一单号
	p.TotalAmount = "10.00"//金额
	//p.ProductCode = "QUICK_WAP_WAY"
	p.ProductCode = "FAST_INSTANT_TRADE_PAY"//网页支付
	var url2 *url.URL
	url2, err = client.TradePagePay(p)
	if err != nil {
		fmt.Println(err)
	}

	var payURL = url2.String()
	fmt.Println(payURL)
	// 这个 payURL 即是用于支付的 URL,可将输出的内容复制,到浏览器中访问该 URL 即可打开支付页面。
}

运行后直接访问 可以用沙箱给的账号进行测试:
支付宝支付功能——基于go语言实现_第3张图片
支付宝支付功能——基于go语言实现_第4张图片

你可能感兴趣的:(golang)