@norcy/react-native-toolkit 0.1.80 → 0.1.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,14 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.WeChatLoginUtil = void 0;
7
- var _reactNativeRootSiblings = _interopRequireDefault(require("react-native-root-siblings"));
8
7
  var _jsSha = require("js-sha1");
9
- var _reactNative = _interopRequireWildcard(require("react-native"));
8
+ var _reactNative = require("react-native");
10
9
  var WeChat = _interopRequireWildcard(require("react-native-wechat-lib"));
11
10
  var _Tool = require("./Tool");
12
11
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
12
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
13
  // https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
16
14
  const getAccessToken = async (WeiXinId, WeiXinSecret) => {
17
15
  let url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + WeiXinId + '&secret=' + WeiXinSecret;
@@ -79,33 +77,14 @@ const WeChatLoginUtil = exports.WeChatLoginUtil = {
79
77
  });
80
78
  });
81
79
  },
82
- doLoginByScan: async (WeiXinId, WeiXinSecret, callback) => {
80
+ doLoginByScan: async (WeiXinId, WeiXinSecret, onQRGet, callback) => {
83
81
  const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);
84
82
  const ticket = await getSDKTicket(accessToken);
85
83
  const nonceStr = _Tool.Tool.generateObjectId();
86
84
  const timestamp = String(Math.round(Date.now() / 1000));
87
85
  const signature = createSignature(WeiXinId, nonceStr, ticket, timestamp);
88
86
  _reactNative.NativeModules.WeChat.authByScan(WeiXinId, nonceStr, timestamp, 'snsapi_userinfo', signature, '', ret => {
89
- console.log('qrcode', ret === null || ret === void 0 ? void 0 : ret.qrcode);
90
- new _reactNativeRootSiblings.default( /*#__PURE__*/_reactNative.default.createElement(_reactNative.View, {
91
- style: {
92
- top: 0,
93
- right: 0,
94
- bottom: 0,
95
- left: 0,
96
- backgroundColor: 'red',
97
- justifyContent: 'center',
98
- alignItems: 'center'
99
- }
100
- }, /*#__PURE__*/_reactNative.default.createElement(_reactNative.Image, {
101
- source: {
102
- uri: ret.qrcode
103
- },
104
- style: {
105
- width: 200,
106
- height: 200
107
- }
108
- })));
87
+ onQRGet(ret === null || ret === void 0 ? void 0 : ret.qrcode);
109
88
  }, ret => {
110
89
  console.log('scan result', ret);
111
90
  if (!(ret !== null && ret !== void 0 && ret.authCode)) {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeRootSiblings","_interopRequireDefault","require","_jsSha","_reactNative","_interopRequireWildcard","WeChat","_Tool","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","getAccessToken","WeiXinId","WeiXinSecret","url","response","fetch","res","json","access_token","getSDKTicket","accessToken","ticket","createSignature","nonceStr","sdkTicket","timestamp","origin","ret","sha1","console","log","getUserInfo","code","callback","accessTokenUrl","then","userInfoUrl","openid","res2","nickname","headimgurl","unionid","catch","e","warn","error","WeChatLoginUtil","exports","doLogin","sendAuthRequest","doLoginByScan","Tool","generateObjectId","String","Math","round","Date","now","signature","NativeModules","authByScan","qrcode","RootSiblings","createElement","View","style","top","right","bottom","left","backgroundColor","justifyContent","alignItems","Image","source","uri","width","height","authCode"],"sources":["WeChatLoginUtil.tsx"],"sourcesContent":["import RootSiblings from 'react-native-root-siblings';\nimport { sha1 } from 'js-sha1';\nimport React, { Image, NativeModules, View } from 'react-native';\nimport * as WeChat from 'react-native-wechat-lib';\nimport { Tool } from './Tool';\n\n// https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html\nconst getAccessToken = async (WeiXinId: string, WeiXinSecret: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret;\n const response = await fetch(url);\n const res = await response.json();\n return res.access_token;\n};\n\nconst getSDKTicket = async (accessToken: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=2&access_token=' +\n accessToken;\n const response = await fetch(url);\n const res = await response.json();\n return res.ticket;\n};\n\nconst createSignature = (\n WeiXinId: string,\n nonceStr: string,\n sdkTicket: string,\n timestamp: string\n) => {\n const origin =\n 'appid=' +\n WeiXinId +\n '&noncestr=' +\n nonceStr +\n '&sdk_ticket=' +\n sdkTicket +\n '&timestamp=' +\n timestamp;\n const ret = sha1(origin);\n console.log('wx scan signature', origin, ret);\n return ret;\n};\n\nconst getUserInfo = (\n WeiXinId: string,\n WeiXinSecret: string,\n code: string,\n callback: Function\n) => {\n let accessTokenUrl =\n 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret +\n '&code=' +\n code +\n '&grant_type=authorization_code';\n fetch(accessTokenUrl)\n .then((res) => {\n return res.json();\n })\n .then((res) => {\n console.log('wechat get access code success: ', res.access_token);\n let userInfoUrl =\n 'https://api.weixin.qq.com/sns/userinfo?access_token=' +\n res.access_token +\n '&openid=' +\n res.openid;\n fetch(userInfoUrl)\n .then((res2) => {\n return res2.json();\n })\n .then((json) => {\n console.log('wechat get user info success: ', json);\n callback({\n nickname: json.nickname,\n headimgurl: json.headimgurl,\n openid: json.openid,\n unionid: json.unionid,\n });\n })\n .catch((e) => {\n console.warn('wechat get user info fail ', e);\n callback({ error: e });\n });\n })\n .catch((e) => {\n console.warn('wechat get access code fail ', e);\n callback({ error: e });\n });\n};\n\nexport const WeChatLoginUtil = {\n doLogin: (WeiXinId: string, WeiXinSecret: string, callback: Function) => {\n WeChat.sendAuthRequest('snsapi_userinfo')\n .then((ret) => {\n console.log('wechat auth success ', ret);\n if (!ret?.code) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.code, callback);\n })\n .catch((e: any) => {\n console.warn('wechat auth fail ', e);\n callback({ error: e });\n });\n },\n\n doLoginByScan: async (\n WeiXinId: string,\n WeiXinSecret: string,\n callback: Function\n ) => {\n const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);\n const ticket = await getSDKTicket(accessToken);\n const nonceStr = Tool.generateObjectId();\n const timestamp = String(Math.round(Date.now() / 1000));\n const signature = createSignature(WeiXinId, nonceStr, ticket, timestamp);\n\n NativeModules.WeChat.authByScan(\n WeiXinId,\n nonceStr,\n timestamp,\n 'snsapi_userinfo',\n signature,\n '',\n (ret: any) => {\n console.log('qrcode', ret?.qrcode);\n new RootSiblings(\n (\n <View\n style={{\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: 'red',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Image\n source={{ uri: ret.qrcode }}\n style={{ width: 200, height: 200 }}\n />\n </View>\n )\n );\n },\n (ret: any) => {\n console.log('scan result', ret);\n if (!ret?.authCode) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.authCode, callback);\n }\n );\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAD,uBAAA,CAAAH,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAA8B,SAAAM,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAlB,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE9B;AACA,MAAMiB,cAAc,GAAG,MAAAA,CAAOC,QAAgB,EAAEC,YAAoB,KAAK;EACvE,IAAIC,GAAG,GACL,6EAA6E,GAC7EF,QAAQ,GACR,UAAU,GACVC,YAAY;EACd,MAAME,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAG,CAAC;EACjC,MAAMG,GAAG,GAAG,MAAMF,QAAQ,CAACG,IAAI,CAAC,CAAC;EACjC,OAAOD,GAAG,CAACE,YAAY;AACzB,CAAC;AAED,MAAMC,YAAY,GAAG,MAAOC,WAAmB,IAAK;EAClD,IAAIP,GAAG,GACL,yEAAyE,GACzEO,WAAW;EACb,MAAMN,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAG,CAAC;EACjC,MAAMG,GAAG,GAAG,MAAMF,QAAQ,CAACG,IAAI,CAAC,CAAC;EACjC,OAAOD,GAAG,CAACK,MAAM;AACnB,CAAC;AAED,MAAMC,eAAe,GAAGA,CACtBX,QAAgB,EAChBY,QAAgB,EAChBC,SAAiB,EACjBC,SAAiB,KACd;EACH,MAAMC,MAAM,GACV,QAAQ,GACRf,QAAQ,GACR,YAAY,GACZY,QAAQ,GACR,cAAc,GACdC,SAAS,GACT,aAAa,GACbC,SAAS;EACX,MAAME,GAAG,GAAG,IAAAC,WAAI,EAACF,MAAM,CAAC;EACxBG,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEJ,MAAM,EAAEC,GAAG,CAAC;EAC7C,OAAOA,GAAG;AACZ,CAAC;AAED,MAAMI,WAAW,GAAGA,CAClBpB,QAAgB,EAChBC,YAAoB,EACpBoB,IAAY,EACZC,QAAkB,KACf;EACH,IAAIC,cAAc,GAChB,0DAA0D,GAC1DvB,QAAQ,GACR,UAAU,GACVC,YAAY,GACZ,QAAQ,GACRoB,IAAI,GACJ,gCAAgC;EAClCjB,KAAK,CAACmB,cAAc,CAAC,CAClBC,IAAI,CAAEnB,GAAG,IAAK;IACb,OAAOA,GAAG,CAACC,IAAI,CAAC,CAAC;EACnB,CAAC,CAAC,CACDkB,IAAI,CAAEnB,GAAG,IAAK;IACba,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEd,GAAG,CAACE,YAAY,CAAC;IACjE,IAAIkB,WAAW,GACb,sDAAsD,GACtDpB,GAAG,CAACE,YAAY,GAChB,UAAU,GACVF,GAAG,CAACqB,MAAM;IACZtB,KAAK,CAACqB,WAAW,CAAC,CACfD,IAAI,CAAEG,IAAI,IAAK;MACd,OAAOA,IAAI,CAACrB,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CACDkB,IAAI,CAAElB,IAAI,IAAK;MACdY,OAAO,CAACC,GAAG,CAAC,gCAAgC,EAAEb,IAAI,CAAC;MACnDgB,QAAQ,CAAC;QACPM,QAAQ,EAAEtB,IAAI,CAACsB,QAAQ;QACvBC,UAAU,EAAEvB,IAAI,CAACuB,UAAU;QAC3BH,MAAM,EAAEpB,IAAI,CAACoB,MAAM;QACnBI,OAAO,EAAExB,IAAI,CAACwB;MAChB,CAAC,CAAC;IACJ,CAAC,CAAC,CACDC,KAAK,CAAEC,CAAC,IAAK;MACZd,OAAO,CAACe,IAAI,CAAC,4BAA4B,EAAED,CAAC,CAAC;MAC7CV,QAAQ,CAAC;QAAEY,KAAK,EAAEF;MAAE,CAAC,CAAC;IACxB,CAAC,CAAC;EACN,CAAC,CAAC,CACDD,KAAK,CAAEC,CAAC,IAAK;IACZd,OAAO,CAACe,IAAI,CAAC,8BAA8B,EAAED,CAAC,CAAC;IAC/CV,QAAQ,CAAC;MAAEY,KAAK,EAAEF;IAAE,CAAC,CAAC;EACxB,CAAC,CAAC;AACN,CAAC;AAEM,MAAMG,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7BE,OAAO,EAAEA,CAACrC,QAAgB,EAAEC,YAAoB,EAAEqB,QAAkB,KAAK;IACvE/C,MAAM,CAAC+D,eAAe,CAAC,iBAAiB,CAAC,CACtCd,IAAI,CAAER,GAAG,IAAK;MACbE,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEH,GAAG,CAAC;MACxC,IAAI,EAACA,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEK,IAAI,GAAE;QACdC,QAAQ,CAAC;UAAEY,KAAK,EAAE;QAAiB,CAAC,CAAC;QACrC;MACF;MACAd,WAAW,CAACpB,QAAQ,EAAEC,YAAY,EAAEe,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEK,IAAI,EAAEC,QAAQ,CAAC;IAC1D,CAAC,CAAC,CACDS,KAAK,CAAEC,CAAM,IAAK;MACjBd,OAAO,CAACe,IAAI,CAAC,mBAAmB,EAAED,CAAC,CAAC;MACpCV,QAAQ,CAAC;QAAEY,KAAK,EAAEF;MAAE,CAAC,CAAC;IACxB,CAAC,CAAC;EACN,CAAC;EAEDO,aAAa,EAAE,MAAAA,CACbvC,QAAgB,EAChBC,YAAoB,EACpBqB,QAAkB,KACf;IACH,MAAMb,WAAW,GAAG,MAAMV,cAAc,CAACC,QAAQ,EAAEC,YAAY,CAAC;IAChE,MAAMS,MAAM,GAAG,MAAMF,YAAY,CAACC,WAAW,CAAC;IAC9C,MAAMG,QAAQ,GAAG4B,UAAI,CAACC,gBAAgB,CAAC,CAAC;IACxC,MAAM3B,SAAS,GAAG4B,MAAM,CAACC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,MAAMC,SAAS,GAAGpC,eAAe,CAACX,QAAQ,EAAEY,QAAQ,EAAEF,MAAM,EAAEI,SAAS,CAAC;IAExEkC,0BAAa,CAACzE,MAAM,CAAC0E,UAAU,CAC7BjD,QAAQ,EACRY,QAAQ,EACRE,SAAS,EACT,iBAAiB,EACjBiC,SAAS,EACT,EAAE,EACD/B,GAAQ,IAAK;MACZE,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEH,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEkC,MAAM,CAAC;MAClC,IAAIC,gCAAY,eAEZ9E,YAAA,CAAAW,OAAA,CAAAoE,aAAA,CAAC/E,YAAA,CAAAgF,IAAI;QACHC,KAAK,EAAE;UACLC,GAAG,EAAE,CAAC;UACNC,KAAK,EAAE,CAAC;UACRC,MAAM,EAAE,CAAC;UACTC,IAAI,EAAE,CAAC;UACPC,eAAe,EAAE,KAAK;UACtBC,cAAc,EAAE,QAAQ;UACxBC,UAAU,EAAE;QACd;MAAE,gBAEFxF,YAAA,CAAAW,OAAA,CAAAoE,aAAA,CAAC/E,YAAA,CAAAyF,KAAK;QACJC,MAAM,EAAE;UAAEC,GAAG,EAAEhD,GAAG,CAACkC;QAAO,CAAE;QAC5BI,KAAK,EAAE;UAAEW,KAAK,EAAE,GAAG;UAAEC,MAAM,EAAE;QAAI;MAAE,CACpC,CACG,CAEV,CAAC;IACH,CAAC,EACAlD,GAAQ,IAAK;MACZE,OAAO,CAACC,GAAG,CAAC,aAAa,EAAEH,GAAG,CAAC;MAC/B,IAAI,EAACA,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAEmD,QAAQ,GAAE;QAClB7C,QAAQ,CAAC;UAAEY,KAAK,EAAE;QAAiB,CAAC,CAAC;QACrC;MACF;MACAd,WAAW,CAACpB,QAAQ,EAAEC,YAAY,EAAEe,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEmD,QAAQ,EAAE7C,QAAQ,CAAC;IAC9D,CACF,CAAC;EACH;AACF,CAAC"}
1
+ {"version":3,"names":["_jsSha","require","_reactNative","WeChat","_interopRequireWildcard","_Tool","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","getAccessToken","WeiXinId","WeiXinSecret","url","response","fetch","res","json","access_token","getSDKTicket","accessToken","ticket","createSignature","nonceStr","sdkTicket","timestamp","origin","ret","sha1","console","log","getUserInfo","code","callback","accessTokenUrl","then","userInfoUrl","openid","res2","nickname","headimgurl","unionid","catch","e","warn","error","WeChatLoginUtil","exports","doLogin","sendAuthRequest","doLoginByScan","onQRGet","Tool","generateObjectId","String","Math","round","Date","now","signature","NativeModules","authByScan","qrcode","authCode"],"sources":["WeChatLoginUtil.ts"],"sourcesContent":["import { sha1 } from 'js-sha1';\nimport { NativeModules } from 'react-native';\nimport * as WeChat from 'react-native-wechat-lib';\nimport { Tool } from './Tool';\n\n// https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html\nconst getAccessToken = async (WeiXinId: string, WeiXinSecret: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret;\n const response = await fetch(url);\n const res = await response.json();\n return res.access_token;\n};\n\nconst getSDKTicket = async (accessToken: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=2&access_token=' +\n accessToken;\n const response = await fetch(url);\n const res = await response.json();\n return res.ticket;\n};\n\nconst createSignature = (\n WeiXinId: string,\n nonceStr: string,\n sdkTicket: string,\n timestamp: string\n) => {\n const origin =\n 'appid=' +\n WeiXinId +\n '&noncestr=' +\n nonceStr +\n '&sdk_ticket=' +\n sdkTicket +\n '&timestamp=' +\n timestamp;\n const ret = sha1(origin);\n console.log('wx scan signature', origin, ret);\n return ret;\n};\n\nconst getUserInfo = (\n WeiXinId: string,\n WeiXinSecret: string,\n code: string,\n callback: Function\n) => {\n let accessTokenUrl =\n 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret +\n '&code=' +\n code +\n '&grant_type=authorization_code';\n fetch(accessTokenUrl)\n .then((res) => {\n return res.json();\n })\n .then((res) => {\n console.log('wechat get access code success: ', res.access_token);\n let userInfoUrl =\n 'https://api.weixin.qq.com/sns/userinfo?access_token=' +\n res.access_token +\n '&openid=' +\n res.openid;\n fetch(userInfoUrl)\n .then((res2) => {\n return res2.json();\n })\n .then((json) => {\n console.log('wechat get user info success: ', json);\n callback({\n nickname: json.nickname,\n headimgurl: json.headimgurl,\n openid: json.openid,\n unionid: json.unionid,\n });\n })\n .catch((e) => {\n console.warn('wechat get user info fail ', e);\n callback({ error: e });\n });\n })\n .catch((e) => {\n console.warn('wechat get access code fail ', e);\n callback({ error: e });\n });\n};\n\nexport const WeChatLoginUtil = {\n doLogin: (WeiXinId: string, WeiXinSecret: string, callback: Function) => {\n WeChat.sendAuthRequest('snsapi_userinfo')\n .then((ret) => {\n console.log('wechat auth success ', ret);\n if (!ret?.code) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.code, callback);\n })\n .catch((e: any) => {\n console.warn('wechat auth fail ', e);\n callback({ error: e });\n });\n },\n\n doLoginByScan: async (\n WeiXinId: string,\n WeiXinSecret: string,\n onQRGet: (qrcode: string) => void,\n callback: Function\n ) => {\n const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);\n const ticket = await getSDKTicket(accessToken);\n const nonceStr = Tool.generateObjectId();\n const timestamp = String(Math.round(Date.now() / 1000));\n const signature = createSignature(WeiXinId, nonceStr, ticket, timestamp);\n\n NativeModules.WeChat.authByScan(\n WeiXinId,\n nonceStr,\n timestamp,\n 'snsapi_userinfo',\n signature,\n '',\n (ret: any) => {\n onQRGet(ret?.qrcode);\n },\n (ret: any) => {\n console.log('scan result', ret);\n if (!ret?.authCode) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.authCode, callback);\n }\n );\n },\n};\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import RootSiblings from 'react-native-root-siblings';
2
1
  import { sha1 } from 'js-sha1';
3
- import React, { Image, NativeModules, View } from 'react-native';
2
+ import { NativeModules } from 'react-native';
4
3
  import * as WeChat from 'react-native-wechat-lib';
5
4
  import { Tool } from './Tool';
6
5
 
@@ -71,33 +70,14 @@ export const WeChatLoginUtil = {
71
70
  });
72
71
  });
73
72
  },
74
- doLoginByScan: async (WeiXinId, WeiXinSecret, callback) => {
73
+ doLoginByScan: async (WeiXinId, WeiXinSecret, onQRGet, callback) => {
75
74
  const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);
76
75
  const ticket = await getSDKTicket(accessToken);
77
76
  const nonceStr = Tool.generateObjectId();
78
77
  const timestamp = String(Math.round(Date.now() / 1000));
79
78
  const signature = createSignature(WeiXinId, nonceStr, ticket, timestamp);
80
79
  NativeModules.WeChat.authByScan(WeiXinId, nonceStr, timestamp, 'snsapi_userinfo', signature, '', ret => {
81
- console.log('qrcode', ret === null || ret === void 0 ? void 0 : ret.qrcode);
82
- new RootSiblings( /*#__PURE__*/React.createElement(View, {
83
- style: {
84
- top: 0,
85
- right: 0,
86
- bottom: 0,
87
- left: 0,
88
- backgroundColor: 'red',
89
- justifyContent: 'center',
90
- alignItems: 'center'
91
- }
92
- }, /*#__PURE__*/React.createElement(Image, {
93
- source: {
94
- uri: ret.qrcode
95
- },
96
- style: {
97
- width: 200,
98
- height: 200
99
- }
100
- })));
80
+ onQRGet(ret === null || ret === void 0 ? void 0 : ret.qrcode);
101
81
  }, ret => {
102
82
  console.log('scan result', ret);
103
83
  if (!(ret !== null && ret !== void 0 && ret.authCode)) {
@@ -1 +1 @@
1
- {"version":3,"names":["RootSiblings","sha1","React","Image","NativeModules","View","WeChat","Tool","getAccessToken","WeiXinId","WeiXinSecret","url","response","fetch","res","json","access_token","getSDKTicket","accessToken","ticket","createSignature","nonceStr","sdkTicket","timestamp","origin","ret","console","log","getUserInfo","code","callback","accessTokenUrl","then","userInfoUrl","openid","res2","nickname","headimgurl","unionid","catch","e","warn","error","WeChatLoginUtil","doLogin","sendAuthRequest","doLoginByScan","generateObjectId","String","Math","round","Date","now","signature","authByScan","qrcode","createElement","style","top","right","bottom","left","backgroundColor","justifyContent","alignItems","source","uri","width","height","authCode"],"sources":["WeChatLoginUtil.tsx"],"sourcesContent":["import RootSiblings from 'react-native-root-siblings';\nimport { sha1 } from 'js-sha1';\nimport React, { Image, NativeModules, View } from 'react-native';\nimport * as WeChat from 'react-native-wechat-lib';\nimport { Tool } from './Tool';\n\n// https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html\nconst getAccessToken = async (WeiXinId: string, WeiXinSecret: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret;\n const response = await fetch(url);\n const res = await response.json();\n return res.access_token;\n};\n\nconst getSDKTicket = async (accessToken: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=2&access_token=' +\n accessToken;\n const response = await fetch(url);\n const res = await response.json();\n return res.ticket;\n};\n\nconst createSignature = (\n WeiXinId: string,\n nonceStr: string,\n sdkTicket: string,\n timestamp: string\n) => {\n const origin =\n 'appid=' +\n WeiXinId +\n '&noncestr=' +\n nonceStr +\n '&sdk_ticket=' +\n sdkTicket +\n '&timestamp=' +\n timestamp;\n const ret = sha1(origin);\n console.log('wx scan signature', origin, ret);\n return ret;\n};\n\nconst getUserInfo = (\n WeiXinId: string,\n WeiXinSecret: string,\n code: string,\n callback: Function\n) => {\n let accessTokenUrl =\n 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret +\n '&code=' +\n code +\n '&grant_type=authorization_code';\n fetch(accessTokenUrl)\n .then((res) => {\n return res.json();\n })\n .then((res) => {\n console.log('wechat get access code success: ', res.access_token);\n let userInfoUrl =\n 'https://api.weixin.qq.com/sns/userinfo?access_token=' +\n res.access_token +\n '&openid=' +\n res.openid;\n fetch(userInfoUrl)\n .then((res2) => {\n return res2.json();\n })\n .then((json) => {\n console.log('wechat get user info success: ', json);\n callback({\n nickname: json.nickname,\n headimgurl: json.headimgurl,\n openid: json.openid,\n unionid: json.unionid,\n });\n })\n .catch((e) => {\n console.warn('wechat get user info fail ', e);\n callback({ error: e });\n });\n })\n .catch((e) => {\n console.warn('wechat get access code fail ', e);\n callback({ error: e });\n });\n};\n\nexport const WeChatLoginUtil = {\n doLogin: (WeiXinId: string, WeiXinSecret: string, callback: Function) => {\n WeChat.sendAuthRequest('snsapi_userinfo')\n .then((ret) => {\n console.log('wechat auth success ', ret);\n if (!ret?.code) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.code, callback);\n })\n .catch((e: any) => {\n console.warn('wechat auth fail ', e);\n callback({ error: e });\n });\n },\n\n doLoginByScan: async (\n WeiXinId: string,\n WeiXinSecret: string,\n callback: Function\n ) => {\n const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);\n const ticket = await getSDKTicket(accessToken);\n const nonceStr = Tool.generateObjectId();\n const timestamp = String(Math.round(Date.now() / 1000));\n const signature = createSignature(WeiXinId, nonceStr, ticket, timestamp);\n\n NativeModules.WeChat.authByScan(\n WeiXinId,\n nonceStr,\n timestamp,\n 'snsapi_userinfo',\n signature,\n '',\n (ret: any) => {\n console.log('qrcode', ret?.qrcode);\n new RootSiblings(\n (\n <View\n style={{\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: 'red',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Image\n source={{ uri: ret.qrcode }}\n style={{ width: 200, height: 200 }}\n />\n </View>\n )\n );\n },\n (ret: any) => {\n console.log('scan result', ret);\n if (!ret?.authCode) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.authCode, callback);\n }\n );\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["sha1","NativeModules","WeChat","Tool","getAccessToken","WeiXinId","WeiXinSecret","url","response","fetch","res","json","access_token","getSDKTicket","accessToken","ticket","createSignature","nonceStr","sdkTicket","timestamp","origin","ret","console","log","getUserInfo","code","callback","accessTokenUrl","then","userInfoUrl","openid","res2","nickname","headimgurl","unionid","catch","e","warn","error","WeChatLoginUtil","doLogin","sendAuthRequest","doLoginByScan","onQRGet","generateObjectId","String","Math","round","Date","now","signature","authByScan","qrcode","authCode"],"sources":["WeChatLoginUtil.ts"],"sourcesContent":["import { sha1 } from 'js-sha1';\nimport { NativeModules } from 'react-native';\nimport * as WeChat from 'react-native-wechat-lib';\nimport { Tool } from './Tool';\n\n// https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html\nconst getAccessToken = async (WeiXinId: string, WeiXinSecret: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret;\n const response = await fetch(url);\n const res = await response.json();\n return res.access_token;\n};\n\nconst getSDKTicket = async (accessToken: string) => {\n let url =\n 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=2&access_token=' +\n accessToken;\n const response = await fetch(url);\n const res = await response.json();\n return res.ticket;\n};\n\nconst createSignature = (\n WeiXinId: string,\n nonceStr: string,\n sdkTicket: string,\n timestamp: string\n) => {\n const origin =\n 'appid=' +\n WeiXinId +\n '&noncestr=' +\n nonceStr +\n '&sdk_ticket=' +\n sdkTicket +\n '&timestamp=' +\n timestamp;\n const ret = sha1(origin);\n console.log('wx scan signature', origin, ret);\n return ret;\n};\n\nconst getUserInfo = (\n WeiXinId: string,\n WeiXinSecret: string,\n code: string,\n callback: Function\n) => {\n let accessTokenUrl =\n 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' +\n WeiXinId +\n '&secret=' +\n WeiXinSecret +\n '&code=' +\n code +\n '&grant_type=authorization_code';\n fetch(accessTokenUrl)\n .then((res) => {\n return res.json();\n })\n .then((res) => {\n console.log('wechat get access code success: ', res.access_token);\n let userInfoUrl =\n 'https://api.weixin.qq.com/sns/userinfo?access_token=' +\n res.access_token +\n '&openid=' +\n res.openid;\n fetch(userInfoUrl)\n .then((res2) => {\n return res2.json();\n })\n .then((json) => {\n console.log('wechat get user info success: ', json);\n callback({\n nickname: json.nickname,\n headimgurl: json.headimgurl,\n openid: json.openid,\n unionid: json.unionid,\n });\n })\n .catch((e) => {\n console.warn('wechat get user info fail ', e);\n callback({ error: e });\n });\n })\n .catch((e) => {\n console.warn('wechat get access code fail ', e);\n callback({ error: e });\n });\n};\n\nexport const WeChatLoginUtil = {\n doLogin: (WeiXinId: string, WeiXinSecret: string, callback: Function) => {\n WeChat.sendAuthRequest('snsapi_userinfo')\n .then((ret) => {\n console.log('wechat auth success ', ret);\n if (!ret?.code) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.code, callback);\n })\n .catch((e: any) => {\n console.warn('wechat auth fail ', e);\n callback({ error: e });\n });\n },\n\n doLoginByScan: async (\n WeiXinId: string,\n WeiXinSecret: string,\n onQRGet: (qrcode: string) => void,\n callback: Function\n ) => {\n const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);\n const ticket = await getSDKTicket(accessToken);\n const nonceStr = Tool.generateObjectId();\n const timestamp = String(Math.round(Date.now() / 1000));\n const signature = createSignature(WeiXinId, nonceStr, ticket, timestamp);\n\n NativeModules.WeChat.authByScan(\n WeiXinId,\n nonceStr,\n timestamp,\n 'snsapi_userinfo',\n signature,\n '',\n (ret: any) => {\n onQRGet(ret?.qrcode);\n },\n (ret: any) => {\n console.log('scan result', ret);\n if (!ret?.authCode) {\n callback({ error: 'Auth code 获取失败' });\n return;\n }\n getUserInfo(WeiXinId, WeiXinSecret, ret?.authCode, callback);\n }\n );\n },\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export declare const WeChatLoginUtil: {
2
2
  doLogin: (WeiXinId: string, WeiXinSecret: string, callback: Function) => void;
3
- doLoginByScan: (WeiXinId: string, WeiXinSecret: string, callback: Function) => Promise<void>;
3
+ doLoginByScan: (WeiXinId: string, WeiXinSecret: string, onQRGet: (qrcode: string) => void, callback: Function) => Promise<void>;
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norcy/react-native-toolkit",
3
- "version": "0.1.80",
3
+ "version": "0.1.81",
4
4
  "description": "My Toolkit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -73,7 +73,6 @@
73
73
  "react-native": "0.62.2",
74
74
  "react-native-device-info": "^10.0.2",
75
75
  "react-native-purchases": "5.6.0",
76
- "react-native-root-siblings": "^4.0.0",
77
76
  "react-native-simple-toast": "^1.1.3",
78
77
  "react-native-wechat-lib": "^1.1.26",
79
78
  "release-it": "^13.5.8",
@@ -96,7 +95,6 @@
96
95
  "react-native": "*",
97
96
  "react-native-device-info": "*",
98
97
  "react-native-purchases": "*",
99
- "react-native-root-siblings": "*",
100
98
  "react-native-simple-toast": "*",
101
99
  "react-native-wechat-lib": "*",
102
100
  "rn-fetch-blob": "*"
@@ -1,6 +1,5 @@
1
- import RootSiblings from 'react-native-root-siblings';
2
1
  import { sha1 } from 'js-sha1';
3
- import React, { Image, NativeModules, View } from 'react-native';
2
+ import { NativeModules } from 'react-native';
4
3
  import * as WeChat from 'react-native-wechat-lib';
5
4
  import { Tool } from './Tool';
6
5
 
@@ -114,6 +113,7 @@ export const WeChatLoginUtil = {
114
113
  doLoginByScan: async (
115
114
  WeiXinId: string,
116
115
  WeiXinSecret: string,
116
+ onQRGet: (qrcode: string) => void,
117
117
  callback: Function
118
118
  ) => {
119
119
  const accessToken = await getAccessToken(WeiXinId, WeiXinSecret);
@@ -130,27 +130,7 @@ export const WeChatLoginUtil = {
130
130
  signature,
131
131
  '',
132
132
  (ret: any) => {
133
- console.log('qrcode', ret?.qrcode);
134
- new RootSiblings(
135
- (
136
- <View
137
- style={{
138
- top: 0,
139
- right: 0,
140
- bottom: 0,
141
- left: 0,
142
- backgroundColor: 'red',
143
- justifyContent: 'center',
144
- alignItems: 'center',
145
- }}
146
- >
147
- <Image
148
- source={{ uri: ret.qrcode }}
149
- style={{ width: 200, height: 200 }}
150
- />
151
- </View>
152
- )
153
- );
133
+ onQRGet(ret?.qrcode);
154
134
  },
155
135
  (ret: any) => {
156
136
  console.log('scan result', ret);
package/yarn.lock CHANGED
@@ -9200,11 +9200,6 @@ react-native-purchases@5.6.0:
9200
9200
  resolved "https://registry.yarnpkg.com/react-native-purchases/-/react-native-purchases-5.6.0.tgz#7f7a27b3f49b2a7a42ab4cec5f39cde0ad3263d1"
9201
9201
  integrity sha512-Kaj1jgGNHfll7Pv8Pi2yLswY5Wn4on3oV3LjEUQwrKyGbFNIjxJI4DcV/lKwNN4cDF29rI3BwgN6CA6IWw7VwQ==
9202
9202
 
9203
- react-native-root-siblings@^4.0.0:
9204
- version "4.1.1"
9205
- resolved "https://registry.yarnpkg.com/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz#b7742db7634a87f507eb99a5fd699c4f10c46ab0"
9206
- integrity sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA==
9207
-
9208
9203
  react-native-simple-toast@^1.1.3:
9209
9204
  version "1.1.4"
9210
9205
  resolved "https://registry.yarnpkg.com/react-native-simple-toast/-/react-native-simple-toast-1.1.4.tgz#6a962beea87b86228a4f8c51bc93761108740b1c"