component.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package component
  2. import (
  3. "fmt"
  4. opContext "github.com/silenceper/wechat/openplatform/context"
  5. "github.com/silenceper/wechat/util"
  6. )
  7. const (
  8. fastregisterweappURL = "https://api.weixin.qq.com/cgi-bin/component/fastregisterweapp"
  9. )
  10. //Component 快速创建小程序
  11. type Component struct {
  12. *opContext.Context
  13. }
  14. //NewComponent new
  15. func NewComponent(opContext *opContext.Context) *Component {
  16. return &Component{opContext}
  17. }
  18. //RegisterMiniProgramParam 快速注册小程序参数
  19. type RegisterMiniProgramParam struct {
  20. Name string `json:"name"` //企业名
  21. Code string `json:"code"` //企业代码
  22. CodeType string `json:"code_type"` //企业代码类型 1:统一社会信用代码(18 位) 2:组织机构代码(9 位 xxxxxxxx-x) 3:营业执照注册号(15 位)
  23. LegalPersonaWechat string `json:"legal_persona_wechat"` //法人微信号
  24. LegalPersonaName string `json:"legal_persona_name"` //法人姓名(绑定银行卡)
  25. ComponentPhone string `json:"component_phone"` //第三方联系电话(方便法人与第三方联系)
  26. }
  27. //RegisterMiniProgram 快速创建小程
  28. //reference: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Mini_Programs/Fast_Registration_Interface_document.html
  29. func (component *Component) RegisterMiniProgram(param *RegisterMiniProgramParam) error {
  30. componentAK, err := component.GetComponentAccessToken()
  31. if err != nil {
  32. return nil
  33. }
  34. url := fmt.Sprintf(fastregisterweappURL+"?action=create&component_access_token=%s", componentAK)
  35. data, err := util.PostJSON(url, param)
  36. if err != nil {
  37. return err
  38. }
  39. return util.DecodeWithCommonError(data, "component/fastregisterweapp?action=create")
  40. }
  41. //GetRegistrationStatusParam 查询任务创建状态
  42. type GetRegistrationStatusParam struct {
  43. Name string `json:"name"` //企业名
  44. LegalPersonaWechat string `json:"legal_persona_wechat"` //法人微信号
  45. LegalPersonaName string `json:"legal_persona_name"` //法人姓名(绑定银行卡)
  46. }
  47. //GetRegistrationStatus 查询创建任务状态.
  48. func (component *Component) GetRegistrationStatus(param *GetRegistrationStatusParam) error {
  49. componentAK, err := component.GetComponentAccessToken()
  50. if err != nil {
  51. return nil
  52. }
  53. url := fmt.Sprintf(fastregisterweappURL+"?action=search&component_access_token=%s", componentAK)
  54. data, err := util.PostJSON(url, param)
  55. if err != nil {
  56. return err
  57. }
  58. return util.DecodeWithCommonError(data, "component/fastregisterweapp?action=search")
  59. }