gopay
v1.1
최근 결제 작업을 하고 있는데 기본적으로 인터넷에 사용할 수 있는 코드가 없고 불완전하거나 결함이 있어서 결국 제가 직접 골랐습니다. 제가 작성한 코드의 일부를 추출하여 캡슐화하여 모든 사람에게 참고할 수 있기를 바랍니다.
현재 WeChat 공식 계정, WeChat 앱, WeChat 애플릿, Alipay 웹 버전 및 Alipay 앱을 지원합니다. 새로운 결제 수단이 있는 경우 통합할 수도 있습니다.
package main
import (
"fmt"
"github.com/milkbobo/gopay"
"github.com/milkbobo/gopay/client"
"github.com/milkbobo/gopay/common"
"github.com/milkbobo/gopay/constant"
"net/http"
)
//支付宝举例
func main () {
//设置支付宝账号信息
initClient ()
//设置回调函数
initHandle ()
//支付
charge := new (common. Charge )
charge . PayMethod = constant . WECHAT //支付方式
charge . MoneyFee = 1 // 支付钱单位分
charge . Describe = "test pay" //支付描述
charge . TradeNum = "1111111111" //交易号
charge . CallbackURL = "http://127.0.0.1/callback/aliappcallback" //回调地址必须跟下面一样
fdata , err := gopay . Pay ( charge )
if err != nil {
fmt . Println ( err )
return
}
fmt . Println ( fdata )
}
func initClient () {
client . InitAliAppClient ( & client. AliAppClient {
PartnerID : "xxx" ,
SellerID : "xxxx" ,
AppID : "xxx" ,
PrivateKey : nil ,
PublicKey : nil ,
})
}
func initHandle () {
http . HandleFunc ( "callback/aliappcallback" , func ( w http. ResponseWriter , r * http. Request ) {
//返回支付结果
aliResult , err := gopay . AliAppCallback ( w , r )
if err != nil {
fmt . Println ( err )
//log.xxx
return
}
//接下来处理自己的逻辑
fmt . Println ( aliResult )
})
}