83 lines
6.9 KiB
Go
83 lines
6.9 KiB
Go
package huawei
|
||
|
||
type CallbackType struct {
|
||
Version string `json:"version"`
|
||
NotifyTime int64 `json:"notifyTime"`
|
||
EventType string `json:"eventType"`
|
||
ApplicationId string `json:"applicationId"`
|
||
OrderNotification *OrderNotification `json:"orderNotification"`
|
||
SubNotification *SubNotification `json:"subNotification"`
|
||
}
|
||
|
||
type OrderNotification struct {
|
||
Version string `json:"version" dc:"通知版本:v2"`
|
||
NotificationType int `json:"notificationType" dc:"通知事件的类型,取值如下:1:支付成功 2:退款成功"`
|
||
PurchaseToken string `json:"purchaseToken" dc:"待下发商品的购买Token"`
|
||
ProductId string `json:"productId" dc:"商品ID"`
|
||
}
|
||
|
||
type SubNotification struct {
|
||
StatusUpdateNotification *StatusUpdateNotification `json:"statusUpdateNotification" dc:"通知消息"`
|
||
NotificationSignature string `json:"notificationSignature" dc:"对statusUpdateNotification字段的签名字符串,签名算法为signatureAlgorithm表示的签名算法。"`
|
||
Version string `json:"version" dc:"通知版本:v2"`
|
||
SignatureAlgorithm string `json:"signatureAlgorithm" dc:"签名算法。"`
|
||
}
|
||
|
||
// StatusUpdateNotification 订阅状态更新通知
|
||
type StatusUpdateNotification struct {
|
||
Environment string `json:"environment" dc:"发送通知的环境。PROD:正式环境;Sandbox:沙盒测试"`
|
||
NotificationType int `json:"notificationType" dc:"通知事件的类型,具体定义需参考相关文档说明"`
|
||
SubscriptionID string `json:"subscriptionId" dc:"订阅ID"`
|
||
CancellationDate int64 `json:"cancellationDate" dc:"撤销订阅时间或退款时间,UTC时间戳,以毫秒为单位,仅在notificationType取值为CANCEL的场景下会传入"`
|
||
OrderID string `json:"orderId" dc:"订单ID,唯一标识一笔需要收费的收据,由华为应用内支付服务器在创建订单以及订阅型商品续费时生成。每一笔新的收据都会使用不同的orderId。通知类型为NEW_RENEWAL_PREF时不存在"`
|
||
LatestReceipt string `json:"latestReceipt" dc:"最近的一笔收据的token,仅在notificationType取值为INITIAL_BUY 、RENEWAL或INTERACTIVE_RENEWAL并且续期成功情况下传入"`
|
||
LatestReceiptInfo string `json:"latestReceiptInfo" dc:"最近的一笔收据,JSON字符串格式,包含的参数请参见InappPurchaseDetails,在notificationType取值为CANCEL时无值"`
|
||
LatestReceiptInfoSignature string `json:"latestReceiptInfoSignature" dc:"对latestReceiptInfo的签名字符串,签名算法为statusUpdateNotification中的signatureAlgorithm。服务器在收到签名字符串后,需要参见对返回结果验签使用IAP公钥对latestReceiptInfo的JSON字符串进行验签。公钥获取请参见查询支付服务信息"`
|
||
LatestExpiredReceipt string `json:"latestExpiredReceipt" dc:"最近的一笔过期收据的token"`
|
||
LatestExpiredReceiptInfo string `json:"latestExpiredReceiptInfo" dc:"最近的一笔过期收据,JSON字符串格式,在notificationType取值为RENEWAL或INTERACTIVE_RENEWAL时有值"`
|
||
LatestExpiredReceiptInfoSignature string `json:"latestExpiredReceiptInfoSignature" dc:"对latestExpiredReceiptInfo的签名字符串,签名算法为statusUpdateNotification中的signatureAlgorithm。服务器在收到签名字符串后,需要参见对返回结果验签使用IAP公钥对latestExpiredReceiptInfo的JSON字符串进行验签。公钥获取请参见查询支付服务信息"`
|
||
AutoRenewStatus int `json:"autoRenewStatus" dc:"续期状态。取值说明:1:当前周期到期后正常续期;0:用户已终止续期"`
|
||
RefundPayOrderId string `json:"refundPayOrderId" dc:"退款交易号,在notificationType取值为CANCEL时有值"`
|
||
ProductID string `json:"productId" dc:"订阅型商品ID"`
|
||
ApplicationID string `json:"applicationId" dc:"应用ID"`
|
||
ExpirationIntent int `json:"expirationIntent" dc:"超期原因,仅在notificationType为RENEWAL或INTERACTIVE_RENEWAL时并且续期失败情况下有值"`
|
||
PurchaseToken string `json:"purchaseToken" dc:"订阅token,与上述订阅ID字段subscriptionId对应。"`
|
||
}
|
||
|
||
type AtResponse struct {
|
||
AccessToken string `json:"access_token"`
|
||
}
|
||
|
||
type VerifyTokenRes struct {
|
||
ResponseCode string `json:"responseCode"`
|
||
PurchaseTokenData string `json:"purchaseTokenData"`
|
||
DataSignature string `json:"dataSignature"`
|
||
SignatureAlgorithm string `json:"signatureAlgorithm"`
|
||
}
|
||
|
||
type PurchaseTokenData struct {
|
||
AutoRenewing bool `json:"autoRenewing" dc:"表示订阅是否自动续费"`
|
||
OrderId string `json:"orderId" dc:"订单ID,唯一标识一笔订单"`
|
||
PackageName string `json:"packageName" dc:"应用的包名"`
|
||
ApplicationId int `json:"applicationId" dc:"应用ID,以整数形式表示"`
|
||
ApplicationIdString string `json:"applicationIdString" dc:"应用ID的字符串形式"`
|
||
Kind int `json:"kind" dc:"购买类型的某种标识,具体含义可能取决于业务逻辑"`
|
||
ProductId string `json:"productId" dc:"商品ID,用于标识购买的商品"`
|
||
ProductName string `json:"productName" dc:"商品名称"`
|
||
PurchaseTime int64 `json:"purchaseTime" dc:"购买时间,可能是某种特定格式的时间表示"`
|
||
PurchaseTimeMillis int64 `json:"purchaseTimeMillis" dc:"购买时间,以毫秒为单位的时间戳"`
|
||
PurchaseState int `json:"purchaseState" dc:"购买状态,不同的整数值代表不同的状态,具体含义取决于业务逻辑"`
|
||
DeveloperPayload string `json:"developerPayload" dc:"开发者自定义负载数据"`
|
||
PurchaseToken string `json:"purchaseToken" dc:"购买令牌"`
|
||
ResponseCode string `json:"responseCode" dc:"响应代码,用于表示购买操作的响应结果"`
|
||
ConsumptionState int `json:"consumptionState" dc:"消费状态,不同的整数值代表不同的消费状态,具体含义取决于业务逻辑"`
|
||
Confirmed int `json:"confirmed" dc:"确认状态,不同的整数值代表不同的确认情况,具体含义取决于业务逻辑"`
|
||
PurchaseType int `json:"purchaseType" dc:"购买类型,不同的整数值代表不同的购买类型,具体含义取决于业务逻辑"`
|
||
Currency string `json:"currency" dc:"货币类型"`
|
||
Price int `json:"price" dc:"商品价格"`
|
||
Country string `json:"country" dc:"购买所在国家"`
|
||
PayOrderId string `json:"payOrderId" dc:"支付订单ID"`
|
||
PayType string `json:"payType" dc:"支付类型"`
|
||
SdkChannel string `json:"sdkChannel" dc:"SDK渠道"`
|
||
}
|