package example import ( "fmt" doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" demo_spi_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/spi/demo_spi/request" demo_spi_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/spi/demo_spi/response" ) func ApiExample() { //doudian_sdk.GlobalConfig.AppKey = "xxxxxxxx" //doudian_sdk.GlobalConfig.AppSecret = "xxxxxxxxxx" // //accessToken, err := doudian_sdk.BuildAccessToken(&doudian_sdk.BuildAccessTokenParam{ShopId: 4463798}) //if err != nil { // panic(err) //} // ////假设调用order.orderDetail方法 //request := order_detail.New() //request.GetParams().ShopOrderId = xxxxx //response := request.Execute(accessToken) } func SpiExample() { //query是服务端调用http请求时的请求参数,假如spi实现地址是http://www.xxx.yyy/abc //服务端实际调用的时候会拼接上请求参数:http://www.xxx.yyy/abc?app_key=7043675397937989128¶m_json={}×tamp=11112223333&sign=xxxxxxx&sign_method=md5&sign_v2=xxxxx //所以query等于app_key=7043675397937989128¶m_json={}×tamp=11112223333&sign=xxxxxxx&sign_method=md5&sign_v2=xxxxx query := "app_key=7043675397937989128¶m_json={}×tamp=11112223333&sign=xxxxxxx&sign_method=md5&sign_v2=xxxxx" resp, err := doudian_sdk.ConfigSpiWithUrlQuery(demo_spi_request.New(), BizHandler, query, nil).ResponseJson() if err != nil { panic(err) } //将resp作为http请求的body返回给服务器 fmt.Println(resp) } // BizHandler 定义BizHandler,BizHandler用来处理接收到服务器请求之后, //需要处理的业务逻辑,SDK会将服务器下发的业务参数(param_json) //封装成对应的Param类实例,并放入DoudianOpSpiContext中,开发 //者可以通过context获取封装好的数据。SDK也会将需要返回的数据封 //装成Data类实例,开发者可以通过context.getData()获取该实例, //并设置其中的字段,最终返回给开放平台服务器。 // //在本示例中(demo/spi),Param对象为 DemoSpiParam,Data对象 //为 DemoSpiData func BizHandler(context *doudian_sdk.DoudianOpSpiContext) { paramJson := context.GetParamObject().(*demo_spi_request.DemoSpiParam) fmt.Printf("%+v\n", paramJson) data := context.GetData().(*demo_spi_response.DemoSpiData) data.Data1 = "xxx" context.WrapSuccess() }