gopay
v1.1
最近決済に取り組んでいるのですが、インターネット上には基本的に使えるコードがなく、不完全だったり不備があったりするので、やっと自分で拾ってきました。私が書いたコードの一部を抽出してカプセル化し、皆さんの参考になれば幸いです。
現在、WeChat 公式アカウント、WeChat アプリ、WeChat アプレット、Alipay Web バージョン、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 )
})
}