위챗 애플릿 미니 프로그램 개발 Alipay 미니 프로그램 개발 - Alipay의 SDK를 사용하여 사용자 ID 획득

Alipay 미니 프로그램 개발 - Alipay의 SDK를 사용하여 사용자 ID 획득

Aug 04, 2018 am 10:15 AM

Alipay 애플릿은 프런트 엔드에서 사용자의 닉네임과 아바타만 얻을 수 있지만 이것만으로는 충분하지 않습니다. 최소한 사용자의 Alipay 사용자 ID를 얻으려면 Alipay의 SDK를 사용해야 합니다. 물론, 프런트 엔드에서는 httprequest 요청을 발행해야 합니다. 다음은 이전 두 기사의 예를 기반으로 수정되었습니다.

Alipay applet front end#🎜 🎜#

app.js

App({
  globalData:{
    studentid:'',
    username:'',
    apiurl: 'http://XXX'
  }, 
  getUserInfo(){
    var that = this
    return new Promise((resovle,reject)=>{
      if(this.userInfo) resovle(this.userInfo);
      
      //调用用户授权 api 获取用户信息
      my.getAuthCode({
        scopes: 'auth_user', 
        success:(res) =>{
           if (res.authCode) {    
             my.httpRequest({
               url: that.globalData.apiurl + '/api/AliPay/GetUserInfo',
               method: 'GET',
               data: {
                  auth_code: res.authCode
               },
               dataType: 'json',
               success: function(res) {
                  that.globalData.studentid = res.data.data.student_id;
                  that.globalData.username = res.data.data.user_name;
                  //获取用户信息,照片、昵称
                  my.getAuthUserInfo({
                    scopes: ['auth_user'],
                    success: (res) => {
                      that.userInfo = res;
                      resovle(that.userInfo);
                   },
                   fail:() =>{
                      reject({});
                   }
                  });
                  console.log('返回UserDetail', res.data.data);         
               },
               fail: function(res) {
                  my.alert({content: 'fail'});
               },
               complete: function(res) {
                  my.hideLoading();
               }
            });
          }
        },
        fail:() =>{
          reject({});
        }
      });
    });
  },

  onLaunch(options) {

  },
  onShow(options) {
    // 从后台被 scheme 重新打开
  },
});
로그인 후 복사

위 코드는 백엔드 webapi http://XXX/api/AliPay/GetUserInfo를 호출하여 사용자 정보를 얻고, 얻은 사용자 ID와 사용자 이름을 전역 변수 globalData

const app = getApp();

Page({
  data: {
    src: '',
    username: '',
    studentid: ''
  },
  imageError: function (e) {
    console.log('image 发生错误', e.detail.errMsg)
  },
  imageLoad: function (e) {
    console.log('image 加载成功', e);
  },
  onLoad(query) {
    // 页面加载
    app.getUserInfo().then(
      user => {
            console.info(user);
            //设置头像
            if (user.avatar.length > 0) {
               this.setData({src: user.avatar});
            }
            else{
               this.setData({src: '/images/tou.png'});
            } 
            //设置用户名    
            if (app.globalData.username)
            {
               this.setData({username: app.globalData.username});
            }
            else
            {
               this.setData({username: user.nickName});
            }

            if(app.globalData.studentid)
            {
               //设置UserId
               this.setData({studentid: app.globalData.studentid}); 
            }
        }
    );
  },
  onShow() {
    // 页面显示
       
  },
  onReady() {

     
  }
});
로그인 후 복사
#🎜🎜 #원래 공식에서는 .net 프레임워크용 SDK만 제공하지만, 인터넷상의 누군가가 이미 .net 코어 버전을 Run Install-Package Alipay.AopSdk.Core에 이식했습니다. appsettings.json에서 다음을 구성하고 비밀번호를 작성합니다. 프로그램 공개 키, 개인 키, appid 및 기타 매개변수 uid는

  "Alipay": {
    //校园码支付宝小程序正式环境
    "AlipayPublicKey": "",
    "AppId": "",
    "CharSet": "UTF-8",
    "GatewayUrl": "https://openapi.alipay.com/gateway.do",
    "PrivateKey": "",
    "SignType": "RSA2",
    "Uid": ""
  }
로그인 후 복사

으로 작성할 필요가 없습니다. 그런 다음 Service#를 삽입해야 합니다. 🎜🎜#

Startup.cs 코드는 게시물과 관련하여 모든 것에 보조금을 지급합니다. appsettings.json을 읽고 서비스

        private void ConfigureAlipay(IServiceCollection services)
        {
            var alipayOptions = Configuration.GetSection("Alipay").Get<AlipayOptions>();
            //检查RSA私钥
            AlipayConfigChecker.Check(alipayOptions.SignType, alipayOptions.PrivateKey);
            services.AddAlipay(options => options.SetOption(alipayOptions)).AddAlipayF2F();
        }


        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //配置alipay服务
            ConfigureAlipay(services);
            ......
로그인 후 복사
#🎜🎜에 삽입합니다. #프론트엔드에서 인증코드를 받은 후 인증을 이용해 사용자 정보를 가져옵니다

        private AlipayUserInfoShareResponse GetShareResponse(string auth_code)
        {
            var alipaySystemOauthTokenRequest = new AlipaySystemOauthTokenRequest
            {
                Code = auth_code,
                GrantType = "authorization_code"
            };
            var oauthTokenResponse = _alipayService.Execute(alipaySystemOauthTokenRequest);
            AlipayUserInfoShareRequest requestUser = new AlipayUserInfoShareRequest();
            AlipayUserInfoShareResponse userinfoShareResponse = _alipayService.Execute(requestUser, oauthTokenResponse.AccessToken);
            return userinfoShareResponse;
        }

        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="auth_code"></param>
        /// <returns></returns>
        [HttpGet]
        [Route("GetUserInfo")]
        public ActionResult GetUserInfo(string auth_code)
        {
            try
            {
                AlipayUserInfoShareResponse userinfoShareResponse = GetShareResponse(auth_code);
                return new JsonResult(new { data = userinfoShareResponse });
            }
            catch (Exception ex)
            {
                log.Error("错误:" + ex.ToString());
                return new JsonResult(new { data = ex.ToString() });
            }
        }
로그인 후 복사

관련글:

Alipay SDK는 어떻게 사용하나요?

위챗 미니프로그램과 알리페이 미니프로그램 비교 및 ​​차이점

위 내용은 Alipay 미니 프로그램 개발 - Alipay의 SDK를 사용하여 사용자 ID 획득의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)