小程序深度对接

1. 上报用户信息

​ 小程序基础对接时,客服看到了用户名如同 oyr0h0c4PBRJ....-h9Eq3tfEgmkopenid做用户名或直接显示unknown。如需要支持以微信用户名称显示到客户端,需要开发实现如下功能。

1.1 小程序中上报用户信息

接口地址http://`{$hosts}`/thirdparty/smallprogram

请求方式POST

数据格式XML

请求参数

参数名 类型 必填 说明
ToUserName String 小程序原始ID
JsCode String 用户登录凭证(有效期五分钟),在小程序中调用wx.login返回内容,
参见文档
EncryptedData String 包括敏感数据在内的完整用户信息的加密数据,数据来自 wx.getUserInfo返回内容,
参见文档
IV String 加密算法的初始向量,数据来自 wx.getUserInfo返回内容,
参见文档
FromUserName String 发送方昵称(此时发送方是小程序昵称)
CreateTime int 消息创建时间 (整型),时间戳
MsgType String 消息类型,固定字符串:userinfo
MsgId String 任意不重复数组
Content String 消息内容,传空即可

请求样例

<xml>
  <ToUserName><![CDATA[gb_**********]]></ToUserName>
  <JsCode><![CDATA[071rsFQ*********P60tmEQ60rsFQm]]></JsCode>
  <EncryptedData><![CDATA[KXn6qLS1v***************8lJcvz/aGpPd98qH3v0GOEmjLf/UKDbuFO5V2HnMTs08Y3ieCLtyVcMsXUWAZwE/MQccUvatmRHEcWfS985SBNLX9IqQBVKN+C38KR****TmMsGE4SZEcXHy7OFjWB2/h9rDxWu9EDLO/****fWmRfa8NrIMQAvBjFEXQbM84br7d0mPdZNkUkLIdFPPrpD3DpKJzzljTkPlkJfXfY0b+HO/xVzDEdzYGSKMZdT/f0IwTjADEUlmo7ZUHn2MYU******rc1gIXeP4pqklnLAyHBNm/+lXsjjjWtzJfWqFMVw4AIyGVlAhOvXpLqbWjcuGFcq8AVC7CV72iQY2Gq+njnVLsdqysUJaizk7LmWOYzt/0JAY7si8ct5F2pKavtQuA51VrnSDSXB1NQyA8PJh4HJQ==]]></EncryptedData>
  <FromUserName><![CDATA[访客id]]></FromUserName>
  <CreateTime>1530669642</CreateTime>
  <Content><![CDATA[]]></Content>
  <MsgId>6574176053822961800</MsgId>
  <MsgType><![CDATA[userinfo]]></MsgType>
  <IV><![CDATA[RoMQ30UM****+Ja918G6aQ==]]></IV>
</xml>

1.2 微信小程序显示用户信息实现方式

App({
  onLaunch: function () {

    this.getUserInfo();
  },
  getUserInfo: function () {
    var originalID = 'gh_******042d25e';
    var jsCode = '';
    //调用登录接口
    wx.login({
      success: function (res) {
        if (res.code) {
          jsCode = res.code;
          // 登录成功
          console.info('登录成功, 返回信息 jsCode:', jsCode)

          // 获取用户信息
          wx.getUserInfo({
            success: function (res) {

              console.log('用户信息 encryptedData:', res.encryptedData);
              console.log('用户信息 IV', res.iv);

              var arrData = ['<xml>'];
              arrData.push('<ToUserName><![CDATA[',originalID,']]></ToUserName>');
              arrData.push('<JsCode><![CDATA[', jsCode,']]></JsCode>');
              arrData.push('<EncryptedData><![CDATA[', res.encryptedData,']]></EncryptedData>');
              arrData.push('<IV><![CDATA[', res.iv,']]></IV>');
              arrData.push('</xml>');

              // 上报用户信息
              wx.request({
                url: 'http://${host}/thirdparty/smallprogram',
                method: 'POST',
                data: arrData.join(''),
                header: {
                  'content-type': 'application/xml'
                },
                success: function (response) {

                  if( response.statusCode == 200 ){

                    console.info('提交用户数据成功!', response);
                  }
                  else{
                    console.error('提交用户数据失败!', response);
                  }
                }
              });
            }
          });

        } else {
          // 登录失败
          console.info('login fail');
        }

      } // end login success
    }); // end getUserInfo

  }
});

results matching ""

    No results matching ""