41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
package taptap
|
||
|
||
import "github.com/gogf/gf/v2/encoding/gjson"
|
||
|
||
type WebhookData struct {
|
||
Order *Order `json:"order"`
|
||
EventType string `json:"event_type"`
|
||
}
|
||
|
||
// Order 订单信息结构体
|
||
type Order struct {
|
||
OrderID string `json:"order_id" dc:"订单唯一ID"`
|
||
PurchaseToken string `json:"purchase_token" dc:"用于订单核销的token"`
|
||
ClientID string `json:"client_id" dc:"应用的Client ID"`
|
||
OpenID string `json:"open_id" dc:"用户的开放平台ID"`
|
||
UserRegion string `json:"user_region" dc:"用户地区"`
|
||
GoodsOpenID string `json:"goods_open_id" dc:"商品唯一ID"`
|
||
GoodsName string `json:"goods_name" dc:"商品名称"`
|
||
Status string `json:"status" dc:"订单状态"`
|
||
Amount string `json:"amount" dc:"金额(本币金额x1,000,000)"`
|
||
Currency string `json:"currency" dc:"币种"`
|
||
CreateTime string `json:"create_time" dc:"创建时间"`
|
||
PayTime string `json:"pay_time" dc:"支付时间"`
|
||
Extra string `json:"extra" dc:"商户自定义数据,如角色信息等,长度不超过255 UTF-8字符"`
|
||
}
|
||
|
||
func (p *pTapTap) Webhook(body []byte) (res string, err error) {
|
||
var data *WebhookData
|
||
gjson.DecodeTo(body, &data)
|
||
|
||
switch data.EventType {
|
||
case "charge.succeeded": //充值成功
|
||
//todo 处理订单信息
|
||
|
||
case "refund.succeeded": //退款成功
|
||
case "refund.failed": //退款失败
|
||
}
|
||
|
||
return
|
||
}
|