下载文档

API
更新时间:2016-09-18

1、简介

微信分享插件

1.1 说明

封装了微信开放平台的SDK,集成了微信登录、微信分享功能;可用于实现第三方账号登录,分享内容到朋友圈或好友;使用之前须从微信开放平台申请开发者账号并创建应用,获取 appid 和 secret。同时包含微信支付功能。

如何申请请参考附录

  • IDE不建议测试使用,原因:IDE涉及证书和包名问题! 
  • 安卓微信插件在使用时,调用接口时只需填写对应的参数,直接在线勾选插件使用;注意:安卓偶尔收不到回调的问题要设置接收回调窗口setCallbackWindowName方法
  • iOS微信插件在使用在微信支付或分享过程中,App用过uexWeiXin插件打开微信客户端进行支付,支付过程完成后,微信客户端通过应用自定义的UrlScheme返回到本App,并传回支付结果时,需要配置UrlScheme值

通过config.xml配置插件的方法,iOS微信插件可直接在官网公共插件里直接勾选使用,示例配置代码如下:

  1. <config desc="uexWeiXin" type="URLSCHEME">
  2. <urlScheme name="uexWeiXin" schemes="['wxf14d58cec986585b']"/>
  3. </config>

其中’wxf14d58cec986585b’改成您自己申请到的微信appId

iOS 9 以后,为了预防APP通过非正常渠道获取用户的某些隐私信息,Apple启用了URLScheme白名单机制。

  • 为了正常使用插件的所有功能还需要配置URLScheme白名单(什么是URLScheme白名单)
  • 配置白名单方法请参考这里
  • uexWeiXin需要进白名单添加的URLScheme如下
  1. <string>wechat</string>
  2. <string>weixin</string>

1.2 UI展示

1.3 开源源码

插件测试用例与源码下载:点击 插件中心至插件详情页 (插件测试用例与插件源码已经提供)

1.4 术语表


Path Types

协议头 Android对应路径(其中”/sdcard/“等同于”/storage/emulated/0/“) iOS对应路径
res:// widget/wgtRes/ widget/wgtRes
wgts:// /storage/emulated/0/widgetone/apps/xxx(widgetAppId)/ /Documents/apps/xxx(widgetAppId)/
wgts:// /storage/emulated/0/widgetone/widgets/ /Documents/widgets/
file:///sdcard/ /storage/emulated/0/

1.5 错误返回码说明

前端收到的回调中的错误返回码errCode可查看下方链接获取详细信息微信官方全局返回码说明地址

2、API概览

2.1 方法:

registerApp 用户授权

uexWeiXin.registerApp(appID)

说明:

必须先向微信终端注册本应用才可以进行其他操作
回调 cbRegisterApp

参数:

参数名称 参数类型 是否必选 说明
appID String类型 必选 到微信开发者登记页面进行登记并设置相关信息后将获得appID

平台支持:

Android2.2+
iOS6.0+

版本支持:
3.0.0+

示例:

  1. uexWeiXin.registerApp('wxd930ea5d5a258f4f');

weiXinLogin 微信授权登录

uexWeiXin.weiXinLogin(scope,state)

说明:

必须先向微信客户端注册本应用才可以进行该操作
回调 weiXinLogin
参数:

参数名称 参数类型 是否必选 说明
scope String类型 必选 应用授权作用域. 注:授权作用域(scope)代表用户授权给第三方的接口权限, 第三方应用需要向微信开放平台申请使用相应scope的权限后, 使用文档所述方式让用户进行授权,经过用户授权, 获取到相应access_token后方可对接口进行调用.一般为snsapi_userinfo
state String类型 可选 注:用于保持请求和回调的状态,授权请求后原样带回给第三方。 该参数可用于防止csrf攻击(跨站请求伪造攻击), 建议第三方带上该参数,可设置为简单的随机数加session进行校验

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1.0, user-scalable=no" />
  6. <link rel="stylesheet" type="text/css" href="css/index.css">
  7. <title>微信授权登录功能</title>
  8. <script type="text/javascript">
  9. var cText = 0;
  10. var cJson = 1;
  11. var cInt = 2;
  12. var openid;
  13. var access_token;
  14. var refresh_token;
  15. window.uexOnload = function(){
  16. uexWeiXin.cbRegisterApp = function(opCode,dataType,data) {
  17. alert(data);
  18. }
  19. uexWeiXin.cbWeiXinLogin = function (opCode,dataType,data) {
  20. alert(data);
  21. }
  22. uexWeiXin.cbGetWeiXinLoginAccessToken = function (opCode,dataType,data) {
  23. alert(data);
  24. data = JSON.parse(data);
  25. openid=data.openid;
  26. access_token = data.access_token;
  27. refresh_token = data.refresh_token;
  28. }
  29. uexWeiXin.cbGetWeiXinLoginUnionID = function (opCode,dataType,data) {
  30. alert(data);
  31. }
  32. uexWeiXin.cbGetWeiXinLoginCheckAccessToken = function (opCode,dataType,data) {
  33. alert(data);
  34. }
  35. //刷新后重新赋值
  36. uexWeiXin.cbGetWeiXinLoginRefreshAccessToken = function (opCode,dataType,data) {
  37. alert(data);
  38. data = JSON.parse(data);
  39. openid=data.openid;
  40. access_token = data.access_token;
  41. refresh_token = data.refresh_token;
  42. }
  43. uexWeiXin.cbIsWXAppInstalled=function(opCode,dataType,data){
  44. alert("cbIsWXAppInstalled:"+data);
  45. };
  46. uexWeiXin.cbGetWXAppInstallUrl=function(opCode,dataType,data){
  47. alert("cbGetWXAppInstallUrl:"+data);
  48. };
  49. }
  50. </script>
  51. </head>
  52. <body>
  53. <div class="tit">微信授权登录功能</div>
  54. <div class="conbor">
  55. <div class="consj">
  56. <span>1.注册app id</span>
  57. <input class="btn" type="button" value="注册App" onClick="uexWeiXin.registerApp('wxd930ea5d5a258f4f');">
  58. <span>2.检测是否安装微信(必须先注册)</span>
  59. <input class="btn" type="button" value="检测" onClick="uexWeiXin.isWXAppInstalled();">
  60. <input class="btn" type="button" value="授权登陆" onClick="uexWeiXin.weiXinLogin('snsapi_userinfo,snsapi_base','0744');">
  61. <input class="btn" type="button" value="获取accessToken" onClick="uexWeiXin.getWeiXinLoginAccessToken('db426a9829e4b49a0dcac7b4162da6b6','authorization_code');">
  62. <input class="btn" type="button" value="获取个人信息" onClick="uexWeiXin.getWeiXinLoginUnionID(access_token,openid);">
  63. <input class="btn" type="button" value="获取刷新accessToken" onClick="uexWeiXin.getWeiXinLoginRefreshAccessToken('refresh_token',refresh_token);">
  64. <input class="btn" type="button" value="检验accessToken" onClick="uexWeiXin.getWeiXinLoginCheckAccessToken(access_token,openid);">
  65. </div>
  66. </body>
  67. </html>

getWeiXinLoginAccessToken 获取微信登录accessToken

uexWeiXin.getWeiXinLoginAccessToken(secret,grant_type)

说明:

获取微信登录accessToken
回调 cbGetWeiXinLoginAccessToken

参数:

参数名称 参数类型 是否必选 说明
secret String类型 必选 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
grant_type String类型 必选 根据微信SDK要求,填authorization_code(固定值)

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见weiXinLogin方法

getWeiXinLoginCheckAccessToken 检验accessToken是否有效

uexWeiXin.getWeiXinLoginCheckAccessToken(access_token,openid)

说明:

用于检验通过uexWeiXin.getWeiXinLoginAccessToken()方法获取的accessToken是否还在有效期内(目前为2个小时)其中access_token和openid从cbGetWeiXinLoginAccessToken的返回数据获取.
回调 cbGetWeiXinLoginCheckAccessToken

参数:

参数名称 参数类型 是否必选 说明
access_token String类型 必选 调用接口凭证
openid String类型 必选 普通用户标识,对该公众帐号唯一

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见weiXinLogin方法

getWeiXinLoginRefreshAccessToken 获取微信登录的刷新或续期access_token

uexWeiXin.getWeiXinLoginRefreshAccessToken(grant_type,refresh_token)

说明:

当access_token超时后,可以使用refresh_token进行刷新其中refresh_token从cbGetWeiXinLoginAccessToken的返回数据获取.
回调 cbGetWeiXinLoginRefreshAccessToken

参数:

参数名称 参数类型 是否必选 说明
grant_type String类型 必选 填refresh_token(固定值)
refresh_token String类型 必选

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见weiXinLogin方法

getWeiXinLoginUnionID 获取用户个人信息

uexWeiXin.getWeiXinLoginUnionID(access_token,openid)

说明:

获取授权用户的个人信息其中access_token和openid从cbGetWeiXinLoginAccessToken的返回数据获取.若调用getWeiXinLoginRefreshAccessToken方法,则从cbGetWeiXinLoginRefreshAccessToken的返回数据获取
回调 cbGetWeiXinLoginUnionID

参数:

参数名称 参数类型 是否必选 说明
access_token String类型 必选 调用接口凭证
openid String类型 必选 普通用户标识,对该公众帐号唯一

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见weiXinLogin方法

isWXAppInstalled 检查微信是否已安装

uexWeiXin.isWXAppInstalled()

说明:

检查微信是否已安装
回调 cbIsWXAppInstalled

参数:

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbIsWXAppInstalled=function(opCode,dataType,data){
  10. alert(data);
  11. }
  12. }
  13. </script>
  14. </head>
  15. <body>
  16. <div class="tit">微信功能</div>
  17. <div class="conbor">
  18. <div class="consj">
  19. <span>检测是否安装微信 </span>
  20. <input class="btn" type="button" value="检测是否安装微信" onclick="uexWeiXin.isWXAppInstalled();">
  21. </div>
  22. </div>
  23. </body>
  24. </html>

getWXAppInstallUrl 获取微信itunes的安装地址

uexWeiXin.getWXAppInstallUrl()

说明:

获取微信itunes的安装地址
回调 cbGetWXAppInstallUrl

参数:

平台支持:

iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbGetWXAppInstallUrl=function(opCode,dataType,data){
  10. alert(data);
  11. }
  12. }
  13. </script>
  14. </head>
  15. <body>
  16. <div class="tit">微信功能</div>
  17. <div class="conbor">
  18. <div class="consj">
  19. <span>获取微信安装地址 </span>
  20. <input class="btn" type="button" value="获取微信安装地址" onclick="uexWeiXin.getWXAppInstallUrl();">
  21. </div>
  22. </div>
  23. </body>
  24. </html>

isWXAppSupportApi 判断API是否被支持

uexWeiXin.isWXAppSupportApi()

说明:

判断API是否被支持
回调 cbIsWXAppSupportApi

参数:

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbIsWXAppSupportApi=function(opCode,dataType,data){
  10. alert(data);
  11. }
  12. }
  13. </scriptv
  14. </head>
  15. <body>
  16. <div class="tit">微信功能</div>
  17. <div class="conbor">
  18. <div class="consj">
  19. <span>是否支持本API </span>
  20. <input class="btn" type="button" value="是否支持本API" onclick="uexWeiXin.isWXAppSupportApi();">
  21. </div>
  22. </div>
  23. </body>
  24. </html>

getApiVersion 获取SDK的版本号

uexWeiXin.getApiVersion()

说明:

获取SDK的版本号
回调 cbGetApiVersion

参数:

平台支持:

iOS6.0+
Android2.2+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbGetApiVersion =function(opCode,dataType,data){
  10. alert(data);
  11. }
  12. }
  13. </script>
  14. </head>
  15. <body>
  16. <div class="tit">微信功能</div>
  17. <div class="conbor">
  18. <div class="consj">
  19. <span>获取微信安装地址 </span>
  20. <input class="btn" type="button" value="获取微信安装地址" onclick="uexWeiXin.getApiVersion();">
  21. </div>
  22. </div>
  23. </body>
  24. </html>

openWXApp 打开微信

uexWeiXin.openWXApp()

说明:

打开微信

参数:

平台支持:

iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. }
  10. </script>
  11. </head>
  12. <body>
  13. <div class="tit">微信功能</div>
  14. <div class="conbor">
  15. <div class="consj">
  16. <span>打开微信 </span>
  17. <input class="btn" type="button" value="打开微信" onclick="uexWeiXin.openWXApp();">
  18. </div>
  19. </div>
  20. </body>
  21. </html>

sendTextContent 分享文本(旧接口不推荐,改用新接口)

uexWeiXin.sendTextContent(sence,txt)

说明:

分享文本
回调 cbSendTextContent “分享文本的回调方法(旧接口不推荐)”)

参数:

参数名称 参数类型 是否必选 说明
sence Number类型 必选 发送的目标场景,0-会话场景,1-朋友圈场景。
txt String类型 必选 发送的文本内容

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbSendTextContent=function(opCode,dataType,data){
  10. alert(data);
  11. }
  12. }
  13. function shareText(){
  14. var txt = "这是来自AppCan中国最大的移动中间平台对微信支持测试";
  15. var sence = 1;
  16. uexWeiXin.sendTextContent(sence,txt);
  17. }
  18. </script>
  19. </head>
  20. <body>
  21. <div class="tit">微信功能</div>
  22. <div class="conbor">
  23. <div class="consj">
  24. <span>打开微信 </span>
  25. <input class="btn" type="button" value="打开微信" onclick="shareText();">
  26. </div>
  27. </div>
  28. </body>
  29. </html>

sendImageContent 分享图片到微信(旧接口不推荐,改用新接口)

uexWeiXin.sendImageContent(sence,thumbImgPath,imgPath,webpageURL,title,description)

说明:

分享结果将回调给cbSendImageContent方法
回调 cbSendImageContent “分享图片的回调方法(旧接口不推荐)”)

参数:

参数名称 参数类型 是否必选 说明
sence Number类型 必选 发送的目标场景,0-会话场景,1-朋友圈场景。
thumbImgPath String类型 必选 缩略图地址大小不能超过32K
imgPath String类型 必选 图片地址,路径协议详见CONSTANT中PathTypes
webpageURL String类型 可选 分享的链接地址,使用此参数将分享一个链接
title String类型 可选 链接标题长度不能超过512字节
description String类型 可选 可选链接描述内容大小不能超过1K

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbSendImageContent=function(opCode,dataType,data){
  10. //data是状态码
  11. document.getElementById("showPicStatus").innerHTML = "返回分享图片状态码:"+data;
  12. };}
  13. function sharePic(){
  14. var thumImgPath = "res://icon.png";
  15. var realImgPath = "res://Default.png";
  16. var sence = 1;
  17. uexWeiXin.sendImageContent(sence,thumImgPath,realImgPath);
  18. }
  19. </script>
  20. </head>
  21. <body>
  22. <div class="tit">微信功能</div>
  23. <div class="conbor">
  24. <div class="consj">
  25. <span>分享图片 </span>
  26. <input class="btn" type="button" value="分享图片" onclick="sharePic();">
  27. </div>
  28. </div>
  29. </body>
  30. </html>

shareTextContent 分享文本

uexWeiXin.shareTextContent(jsonData)

说明:

分享文本内容到微信
回调 cbShareTextContent

参数:

参数名称 参数类型 是否必选 说明
jsonData String类型 必选 分享的文本内容
  1. {
  2. "text":"中国最大的移动中间键平台AppCan对微信分享的文本支持测试",
  3. "scene":1
  4. }

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbShareTextContent=function(data){
  10. alert(data);
  11. }
  12. }
  13. function shareText(){
  14. var JsonData = '{"text":"中国最大的移动中间键平台AppCan对微信分享的图片支持测试","scene":1}';
  15. uexWeiXin.shareTextContent(JsonData);
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <div class="tit">微信功能</div>
  21. <div class="conbor">
  22. <div class="consj">
  23. <span>分享文本 </span>
  24. <input class="btn" type="button" value="分享文本" onclick="shareText();">
  25. </div>
  26. </div>
  27. </body>
  28. </html>

shareImageContent 分享图片

uexWeiXin.shareImageContent(jsonData)

说明:

分享图片到微信
回调 cbShareImageContent

参数:

参数名称 参数类型 是否必选 说明
jsonData String类型 必选 分享的文本内容,路径协议见CONSTANT中的 path type, Android不支持网络路径图片
  1. jsonData {
  2. thumbImg:,//(必选)缩略图地址Url(大小必须小于32k)
  3. image:,//(必选)图片地址,(路径协议见constant中的 path type)
  4. scene:,//(必选)发送的目标场景 0-会话场景 1-朋友圈场景
  5. title://(必选)图片标题(仅iOS)
  6. }

平台支持:

Android 2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbShareImageContent=function(data){
  10. //data是状态码
  11. alert(data);
  12. };}
  13. function sharePic(){
  14. var JsonData = '{"thumbImg":"res://icon.png","image":"res://Default.png","scene":1}';
  15. uexWeiXin.shareImageContent(JsonData);
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <div class="tit">微信功能</div>
  21. <div class="conbor">
  22. <div class="consj">
  23. <span>分享图片 </span>
  24. <input class="btn" type="button" value="分享图片" onclick="sharePic();">
  25. </div>
  26. </div>
  27. </body>
  28. </html>

uexWeiXin.shareLinkContent(jsonData)

说明:

分享Link到微信
回调 cbShareLinkContent

参数:

参数名称 参数类型 是否必选 说明
jsonData String类型 必选 分享的文本内容,JSON格式
  1. var json = {
  2. thumbImg:,//(必选)缩略图地址Url(大小必须小于32k)
  3. wedpageUrl:,//(必选)链接的地址
  4. scene:,//(必选)发送的目标场景 0-会话场景 1-朋友圈场景
  5. title:,//(必选)链接的标题
  6. description://(必选)描述
  7. }

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. window.uexOnload = function(){
  9. uexWeiXin.cbShareLinkContent=function(data){
  10. //data是状态码
  11. alert(data);
  12. };}
  13. function shareLinkContent(){
  14. var JsonData = '{"thumbImg":"res://icon.png","wedpageUrl":"http://www.appcan.cn","scene":1,"title":"你好,我是AppCan","description":"你好,我是AppCan描述"}';
  15. uexWeiXin.shareLinkContent(JsonData);
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <div class="tit">微信功能</div>
  21. <div class="conbor">
  22. <div class="consj">
  23. <span>分享Link </span>
  24. <input class="btn" type="button" value="分享Link" onclick="shareLinkContent();">
  25. </div>
  26. </div>
  27. </body>
  28. </html>

isSupportPay 判断是否支持支付功能

uexWeiXin.isSupportPay()

说明:

微信5.0以上版本支持支付功能
回调 cbIsSupportPay

参数:

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见gotoPay方法示例

getPrepayId 生成预支付订单

uexWeiXin.getPrepayId(json)

说明:

生成预支付订单
回调 cbGetPrepayId

参数:

参数说明及生成办法详见微信开放平台文档统一下单接口参数说明中的”请求参数”

  1. var json = {
  2. appid:,//(必选) 微信分配的公众账号ID(企业号corpid即为此appId)
  3. mch_id:,//(必选) 微信支付分配的商户号
  4. device_info:,//(可选) 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
  5. nonce_str:,//(必选) 随机字符串,不长于32位。随机字符串,不长于32位。
  6. body:,//(必选) 商品或支付单简要描述
  7. detail:,//(可选) 商品名称明细列表
  8. attach:,//(可选) 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
  9. out_trade_no://(必选) 商户系统内部的订单号,32个字符内、可包含字母
  10. fee_type:,//(可选) 符合ISO 4217标准的三位字母代码,默认人民币:CNY
  11. total_fee:,//(必选) 订单总金额,只能为整数,单位为分
  12. spbill_create_ip:,//(必选) 用户端ip
  13. time_start:,//(可选) 订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。
  14. time_expire:,//(可选) 订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。注意:最短失效时间间隔必须大于5分钟
  15. goods_tag:,//(可选) 商品标记,代金券或立减优惠功能的参数
  16. notify_url:,//(必选) 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
  17. trade_type:,//(必选) 交易类型,此处为固定值"APP"
  18. product_id:,//(可选) 此id为二维码中包含的商品ID,商户自行定义。
  19. openid:,//(可选) 用户在商户appid下的唯一标识。
  20. sign://(必选) 签名,详见签名生成算法

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. var param1 = {
  2. appid:"wx5h8hdi9o2hs6gd0c5g",
  3. mch_id:"1234567890",
  4. device_info:"013467007045764",
  5. nonce_str:"weradfdgdvccfexs1",
  6. body:"appcan pay",
  7. detail:"detail",
  8. attach:"attach",
  9. out_trade_no:"1217752501201406033233356018",
  10. fee_type:"CNY",
  11. total_fee:"1",
  12. spbill_create_ip:"127.0.0.1",
  13. time_start:"20150503152510",
  14. time_expire:"20150703152510",
  15. goods_tag:"WXG",
  16. notify_url:"http://www.baidu.com/",
  17. trade_type:"APP",
  18. product_id:"12235413214070356458058",
  19. openid:"oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
  20. sign:"8FC5935C38628F44B924C838D760E33E"
  21. };
  22. var data1 = JSON.stringify(param1);
  23. uexWeiXin.getPrepayId(data1);

startPay 支付

uexWeiXin.startPay(json)

说明:

支付
回调 cbStartPay

参数:

参数说明及生成办法详见微信开放平台文档调起支付接口参数说明中的”请求参数”

  1. var json ={
  2. appid:,//(必选)微信分配的AppID
  3. partnerid:,//(必选)微信支付分配的商户号
  4. prepayid:,//(必选)微信返回的支付交易会话ID,从gettextareapayId接口的回调方法中获取
  5. package:,//(必选)暂填写固定值Sign=WXPay
  6. noncestr:,//(必选)随机字符串
  7. timestamp:,//(必选)时间戳
  8. sign://(必选)签名}
  9. }

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. var param1 = {
  2. appid:"wx5h8hdi9o2hs6gd0c5g",
  3. partnerid:"1234567890",
  4. prepayid:"wx201506031538433160984eee0861221810",
  5. package:"Sign=WXPay",
  6. noncestr:"weradfdgdvccfexs",
  7. timestamp:"1412000000",
  8. sign:"8FC5935C38628F44B924C838D760E33E"
  9. };
  10. var data1 = JSON.stringify(param1);
  11. uexWeiXin.startPay(data1);

getAccessToken 获取支付token<旧版接口,新版插件不支持,使用新接口>

uexWeiXin.getAccessToken(AppID,AppSecret)

说明:

请先向微信开放平台申请AppID、AppSecret、AppKey、partnerKey。
回调 cbGetAccessToken

参数:

参数名称 参数类型 是否必选 说明
AppID Number类型 必选 在微信开放平台申请的AppID
AppSecret String类型 必选 在微信开放平台申请的AppSecret

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见gotoPay方法示例

getAccessTokenLocal 获取本地支付token<旧版接口,新版插件不支持,使用新接口>

uexWeiXin.getAccessTokenLocal()

说明:

必选先使用getAccessToken方法将支付token存在本地,在使用本方法获得支付token,目的是因为微信对getAccessToken方法的调用次数有限制。
回调 cbGetAccessTokenLocal

参数:

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见gotoPay方法示例

generateAdvanceOrder 生成预支付订单<旧版接口,新版插件不支持,使用新接口>

uexWeiXin.generateAdvanceOrder(token,postJson)

说明:

生成预支付订单
回调 cbGenerateAdvanceOrder

参数:

参数名称 参数类型 是否必选 说明
token String类型 必选 支付token
postJson String类型 必选 json字符串,格式如下:
  1. {
  2. "appid": "wwwwb4f85f3a797777",
  3. "traceid": "crestxu",
  4. "noncestr": "111112222233333",
  5. "package": "bank_type=WX&body=XXX&fee_type=1&input_charset=GBK?ify_url=http%3a%2f%2fwww.qq.com&out_trade_no=16642817866003386000&partner=1900000109&spbill_create_ip=127.0.0.1&total_fee=1&sign=BEEF37AD19575D92E191C1E4B1474CA9",
  6. "timestamp": 1381405298,
  7. "app_signature": "53cca9d47b883bd4a5c85a9300df3da0cb48565c",
  8. "sign_method": "sha1"
  9. }

各字段含义如下:

参数 是否必须 说明
appid 应用唯一标识,在微信开放平台提交应用审核通过后获得
traceid 商家对用户的唯一标识,如果用微信SSO,此处建议填写授权用户的openid
noncestr 32位内的随机串,防重发
package 订单详情(具体生成方法见后文)
timestamp 时间戳,为1970年1月1日00:00到请求发起时间的秒数
app_signature 签名(具体生成方法见后文)
sign_method 加密方式,默认为sha1

package生成方法:

  1. A)对所有传入参数按照字段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2...)拼接成字符串string1;
  2. B)在string1最后拼接上key=partnerKey得到stringSignTemp字符串,并对stringSignTemp进行md5运算,再将得到的字符串所有字符转换为大写,得
  3. signsignValue
  4. C)对string1中的所有键值对中的value进行urlencode转码,按照a步骤重新拼接成字符串,得到string2。对于js前端程序,一定要使用函数
  5. encodeURIComponent进行urlencode编码(注意!进行urlencode时要将空格转化为%20而不是+)。
  6. D)将sign=signValue拼接到string1后面得到最终的package字符串。

app_signature生成方法:

  1. A)参与签名的字段包括:appidappkeynoncerpackagetimestamp以及traceid
  2. B)对所有待签名参数按照字段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2...)拼接成字符串string1。注
  3. 意:所有参数名均为小写字符
  4. C)对string1作签名算法,字段名和字段值都采用原始值,不进行URL转义。具体签名算法为SHA1
  5. 正确的Json返回示例:{"textareapayid":"textareaPAY_ID","errcode":0,"errmsg":"Success"}
  6. 错误的Json返回示例:{"errcode":48001,"errmsg":"apiunauthorized"}

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见gotoPay方法示例

generatePrepayID 生成预支付订单<旧版接口,新版插件不支持,使用新接口>

uexWeiXin.generatePrepayID(token,app_key,packageValue)

说明:

生成预支付订单,generateAdvanceOrder方法的替代方法

参数:

参数名称 参数类型 是否必选 说明
token String类型 必选 支付token
app_key String类型 必选 app_key
packageValue String类型 必选 生成方法如下

packageValue生成方法:

  1. A)对所有传入参数按照字段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2...)拼接成字符串string1;
  2. B)在string1最后拼接上key=partnerKey得到stringSignTemp字符串,并对stringSignTemp进行md5运算,再将得到的字符串所有字符转换为大写,得
  3. signsignValue
  4. C)对string1中的所有键值对中的value进行urlencode转码,按照a步骤重新拼接成字符串,得到string2。对于js前端程序,一定要使用函数
  5. encodeURIComponent进行urlencode编码(注意!进行urlencode时要将空格转化为%20而不是+)。
  6. D)将sign=signValue拼接到string1后面得到最终的package字符串。

平台支持:

Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

见sendPay方法示例

gotoPay 支付<旧版接口,新版插件不支持,使用新接口>

uexWeiXin.gotoPay(partnerID,textareapayID,package,nonceStr,timeStamp,sign)

说明:

支付前需要生成预支付订单
回调 cbGotoPay

参数:

参数名称 参数类型 是否必选 说明
partnerID String类型 必选 商家向财付通申请的商家ID
textareapayID String类型 必选 预支付订单
package String类型 必选 随机串,防重发
nonceStr String类型 必选 时间戳,防重发
timestamp String类型 必选 商家根据财付通文档填写的数据和签名
sign String类型 必选 商家根据微信开放平台文档对数据做得签名

支持平台:
Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <HTML>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="css/index.css">
  6. <title>微信支付功能</title>
  7. <script type="text/javascript">
  8. var cText = 0;
  9. var cJson = 1;
  10. var cInt = 2;
  11. window.uexOnload = function(){
  12. uexWeiXin.cbIsSupportPay =function(opCode,dataType,data) {
  13. document.getElementById("showSupportInfo").innerHTML = data;
  14. }
  15. uexWeiXin.cbGotoPay = function(opCode,dataType,data) {
  16. data = eval('(' + data + ')');
  17. if(data.errCode==0){
  18. document.getElementById("showPayInfo").innerHTML = data;
  19. }else{
  20. document.getElementById("showPayInfo").innerHTML = data.errCode;
  21. }
  22. }
  23. uexWeiXin.cbGenerateAdvanceOrder = function(opCode,dataType,data) {
  24. document.getElementById("showOrderInfo").innerHTML = data;
  25. }
  26. uexWeiXin.cbGetAccessToken = function(opCode,dataType,data) {
  27. document.getElementById("showAccess_tokenold").innerHTML = data;
  28. }
  29. uexWeiXin.cbGetAccessTokenLocal = function(opCode,dataType,data) {
  30. document.getElementById("showAccess_token").innerHTML = data;
  31. }
  32. uexWeiXin.cbIsWXAppInstalled=function(opCode,dataType,data){
  33. alert("cbIsWXAppInstalled:"+data);
  34. };
  35. }
  36. function generateAdvanceOrder(){
  37. var token = document.getElementById("showAccess_token").innerHTML;
  38. var postJsonStr = "{\\"appid\\":\\"wx652070b3a10fcd45\\",\\"noncestr\\":\\"3b3ee08309979aa868ed5980d62e7db0\\",\\"package\\":\\"bank_type=WX&body=%C0%D6%B1%B4%CB%B9%CC%F0%C6%B7%C3%C0%CE%B6%CA%A5%B4%FA3%D1%A11%A3%AC%B2%DD%DD%AE%2F%C7%C9%BF%CB%C1%A6%2F%C3%A2%B9%FB&fee_type=1&input_charset=GBK?ify_url=http%3A%2F%2Ftuan.iweihai.cn%2Fmobile%2Fweixinpay%2Fnotify_url.php&out_trade_no=20140604260005&partner=1218583701&spbill_create_ip=221.2.146.40&total_fee=500&sign=9D3AC54D47C3346A07248E0C74AD996B\\",\\"timestamp\\":1401861361,\\"traceid\\":\\"\\",\\"sign_method\\":\\"sha1\\",\\"app_signature\\":\\"e647c6357755a1151fe1a1eb6dc6a2f4b7d33ba3\\"}";
  39. uexWeiXin.generateAdvanceOrder(token,postJsonStr);
  40. }
  41. function gotoPay(){
  42. uexWeiXin.gotoPay('1218583701','1101000000140702906bfc8e71d49c1d','Sign=WXPay','62645c89febabd1906f1a56c635e6e3f','1404281177','8a94d714eaa156897c3d6dd0446eb04b7ec12a20');
  43. }
  44. </script>
  45. </head>
  46. <body>
  47. <div class="tit">微信功能</div>
  48. <div class="conbor">
  49. <div class="consj">
  50. <span>1.注册app id </span>
  51. <input class="btn" type="button" value="注册App" onclick="uexWeiXin.registerApp('wxd930ea5d5a258f4f');">
  52. <div class="tcxx" id="selectItem"></div><br>
  53. <span>零.当前手机安装的微信版本是否支持微信支付</span>
  54. <span>返回0支持,1版本太低不支持</span>
  55. <input class="btn" type="button" value="判断是否支持微信支付" onclick="uexWeiXin.isSupportPay()">
  56. <div class="tcxx" id="showSupportInfo"></div><br>
  57. <span>一.获取微信支付access_token</span>
  58. <span>准备工作:在使用接口之前请先保证持有向微信开放平台申请得到的 appid、appsecret(长度为
  59. 32 的字符串,用于获取 access_token)、appkey(长度为 128 的字符串,用于支付过程中生 成 app_signature)及 partnerkey(微信公众平台商户模块生成的商户密钥)。网页会在cbGetAccessTocken()中获得。</span>
  60. <input class="btn" type="button" value="获取access_token" onclick="uexWeiXin.getAccessToken('wx652070b3a10fcd45','00f373c57777e46ba86d461cbcc2fbe8');">
  61. <div class="tcxx" id="showAccess_tokenold"></div><br>
  62. <span>一.获取本地微信支付access_token</span>
  63. <span>第一次调用getAccessTokenLocal,是没有办法获取access_token,必须通过getAccessToken获取access_token之后会把access_token存在本地,下次再使用access_token的时候就可以通过getAccessTokenLocal来获得,这么做的目的是因为微信对每天获得token的次数有限制</span>
  64. <input class="btn" type="button" value="获取本地access_token" onclick="uexWeiXin.getAccessTokenLocal();">
  65. <div class="tcxx" id="showAccess_token"></div><br>
  66. <span>二.生成预支付订单</span>
  67. <span>用第一步请求的 access_token 作为参数,然后往微信开放平台接口post订单详情(需要在服务器端生成)生成预支付订单。网页会在cbGetAccessTocken()中获得生成订单情况</span>
  68. <input class="btn" type="button" value="生成预支付订单" onclick="generateAdvanceOrder()">
  69. <div class="tcxx" id="showOrderInfo"></div><br>
  70. <span>三.调起微信支付</span>
  71. <span>将第二步生成的 textareapayId 作为参数,调用微信 sdk 发送支付请求到微信。</span>
  72. <input class="btn" type="button" value="调微信支付" onclick="gotoPay()">
  73. <div class="tcxx" id="showPayInfo"></div><br>
  74. </div>
  75. </div>
  76. </body>
  77. </html>

sendPay 支付<旧版接口,新版插件不支持,使用新接口>

uexWeiXin.sendPay(partnerID,textareapayID,app_key,packageValue)

说明:

支付前需要生成预支付订单,gotoPay方法的替代方法

参数:

参数名称 参数类型 是否必选 说明
partnerID String类型 必选 商家向财付通申请的商家ID
textareapayID String类型 必选 预支付订单
app_key Number类型 必选 app_key
packageValue String类型 必选 packageValue

支持平台:
Android2.2+
iOS6.0+

版本支持:

3.0.0+

示例:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1.0, user-scalable=no" /><link rel="stylesheet" type="text/css" href="../css/index.css">
  6. <title>微信功能</title>
  7. <script type="text/javascript">
  8. var cText = 0;
  9. var cJson = 1;
  10. var cInt = 2;
  11. var appId = "wxd930ea5d5a258f4f";
  12. var app_serect = "db426a9829e4b49a0dcac7b4162da6b6";
  13. var app_key = "L8LrMqqeGRxST5reouB0K66CaYAWpqhAVsq7ggKkxHCOastWksvuX1uvmvQclxaHoYd3ElNBrNO2DHnnzgfVG9Qs473M3DTOZug5er46FhuGofumV8H2FVR9qkjSlC5K";
  14. var partnerId = "1900000109";
  15. var traceId = "crestxu_test";
  16. var packageValue = "bank_type=WX&body=%E5%8D%83%E8%B6%B3%E9%87%91%E7%AE%8D%E6%A3%92&fee_type=1&input_charset=UTF-8?ify_url=http%3A%2F%2Fweixin.qq.com&out_trade_no=9d86d83f925f2149e9edb0ac3b492299c&partner=1900000109&spbill_create_ip=196.168.1.1&total_fee=1&sign=899815E4F3106CC5DCFAF76A4D16069B";
  17. window.uexOnload = function(){
  18. uexWeiXin.cbRegisterApp =function(opCode,dataType,data)
  19. {
  20. //0支持,1 不支持
  21. alert("cbRegisterApp:"+data);
  22. document.getElementById("selectItem").innerHTML = data;
  23. }
  24. uexWeiXin.cbGotoPay = function(opCode,dataType,data)
  25. {
  26. //如果datatype是0说明返回的data是整数0,意味着支付成功了。
  27. //如果datatype是2说明返回的data是字符串,意味着支付失败了。data就是失败信息
  28. console.log("cbGotoPay");
  29. alert("cbGotoPay:"+data);
  30. document.getElementById("showPayInfo").innerHTML = data;
  31. }
  32. uexWeiXin.cbGenerateAdvanceOrder = function(opCode,dataType,data)
  33. {
  34. alert("cbGenerateAdvanceOrder:"+data);
  35. document.getElementById("showOrderInfo").innerHTML = data;
  36. }
  37. uexWeiXin.cbGetAccessToken = function(opCode,dataType,data)
  38. {
  39. alert("cbGetAccessToken:"+data);
  40. document.getElementById("showAccess_token").innerHTML = data;
  41. }
  42. uexWeiXin.cbGetAccessTokenLocal = function(opCode,dataType,data)
  43. {
  44. alert("cbGetAccessTokenLocal:"+data);
  45. document.getElementById("showAccess_token").innerHTML = data;
  46. }
  47. }
  48. function getAccessToken(){
  49. uexWeiXin.getAccessToken(appId,app_serect);
  50. }
  51. function generateAdvanceOrder(){
  52. var JsonStr = document.getElementById("showAccess_token").innerHTML;
  53. var token = JSON.parse(JsonStr).access_token;
  54. uexWeiXin.generatetextareapayID(token,app_key,packageValue);
  55. }
  56. function gotoPay(){
  57. var JsonStr = document.getElementById("showOrderInfo").innerHTML;
  58. var textareapayid = JSON.parse(JsonStr).textareapayid;
  59. uexWeiXin.sendPay(partnerId,textareapayid,app_key,packageValue);
  60. }
  61. </script>
  62. </head>
  63. <body>
  64. <div class="conbor">
  65. <div class="consj">
  66. <span>1.注册app id</span>
  67. //wxd930ea5d5a258f4f
  68. <input class="btn" type="button" value="iOS注册App" onclick="uexWeiXin.registerApp('wxd930ea5d5a258f4f');">
  69. <span>一.获取微信支付access_token</span>
  70. <span>准备工作:在使用接口之前请先保证持有向微信开放平台申请得到的 appid、appsecret(长度为
  71. 32 的字符串,用于获取 access_token)、appkey(长度为 128 的字符串,用于支付过程中生 成 app_signature)及 partnerkey(微信公众平台商户模块生成的商户密钥)。网页会在cbGetAccessTocken()中获得。</span>
  72. <input class="btn" type="button" value="获取access_token" onclick="getAccessToken()">
  73. <span>一.获取本地微信支付access_token</span>
  74. <span>第一次调用getAccessTokenLocal,是没有办法获取access_token,必须通过getAccessToken获取access_token之后会把access_token存在本地,下次再使用access_token的时候就可以通过getAccessTokenLocal来获得,这么做的目的是因为微信对每天获得token的次数有限制</span>
  75. <input class="btn" type="button" value="获取本地access_token" onclick="uexWeiXin.getAccessTokenLocal();">
  76. <div class="tcxx" id="showAccess_token"></div><br>
  77. <span>二.生成预支付订单</span>
  78. <span>用第一步请求的 access_token 作为参数,然后往微信开放平台接口post订单详情(需要在服务器端生成)生成预支付订单。网页会在cbGetAccessTocken()中获得生成订单情况</span>
  79. <input class="btn" type="button" value="生成预支付订单" onclick="generateAdvanceOrder()">
  80. <div class="tcxx" id="showOrderInfo"></div><br>
  81. <span>三.调起微信支付</span>
  82. <span>将第二步生成的 textareapayId 作为参数,调用微信 sdk 发送支付请求到微信。</span>
  83. <input class="btn" type="button" value="调微信支付" onclick="gotoPay()">
  84. <div class="tcxx" id="showPayInfo"></div>
  85. </div>
  86. </div>
  87. </body>
  88. </html>

login 登录

uexWeiXin.login(json)

说明:

微信登录,回调 cbLogin

参数:

  1. var json = {
  2. scope:,
  3. state:
  4. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
scope String 应用授权作用域,可传多个,用英文逗号隔开。详情请参考授权域说明
state String 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例:

  1. var params = {
  2. scope:"snsapi_userinfo,snsapi_base",
  3. state:"0902"
  4. };
  5. var data = JSON.stringify(params);
  6. uexWeiXin.login(data);

getLoginAccessToken 获取access_token

uexWeiXin.getLoginAccessToken(json)

说明:

获取access_token,回调 cbGetLoginAccessToken

参数:

  1. var json = {
  2. secret:,
  3. code:,
  4. grant_type:
  5. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
secret String 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
code String 调用login接口时获得的code
grant_type String 填authorization_code

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例:

  1. var params = {
  2. secret:"APP_SECRET",
  3. code:"CODE",
  4. grant_type:"authorization_code"
  5. };
  6. var data = JSON.stringify(params);
  7. uexWeiXin.getLoginAccessToken(data);

getLoginRefreshAccessToken 获取刷新access_token

uexWeiXin.getLoginRefreshAccessToken(json)

说明:

刷新access_token有效期,回调 cbGetLoginRefreshAccessToken

参数:

  1. var json = {
  2. grant_type:,
  3. refresh_token:
  4. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
grant_type String 填refresh_token
refresh_token String 调用getLoginAccessToken接口时获得的refresh_token

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例:

  1. var params = {
  2. grant_type:"refresh_token",
  3. refresh_token:"REFRESH_TOKEN"
  4. };
  5. var data = JSON.stringify(params);
  6. uexWeiXin.getLoginRefreshAccessToken(data);

getLoginCheckAccessToken 检验access_token是否有效

uexWeiXin.getLoginCheckAccessToken(json)

说明:

检验access_token是否有效,回调 cbGetLoginCheckAccessToken

参数:

  1. var json = {
  2. access_token:,
  3. openid:
  4. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
access_token String 调用接口凭证
openid String 普通用户标识,通过调用getLoginAccessToken或者getLoginRefreshAccessToken可获得该唯一标识符

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例:

  1. var params = {
  2. access_token:"ACCESS_TOKEN",
  3. openid:"OPENID"
  4. };
  5. var data = JSON.stringify(params);
  6. uexWeiXin.getLoginCheckAccessToken(data);

getLoginUnionID 获取用户个人信息

uexWeiXin.getLoginUnionID(json)

说明:

获取用户个人信息,UnionID机制,开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。回调 cbGetLoginUnionID

参数:

  1. var json = {
  2. access_token:,
  3. openid:
  4. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
access_token String 调用接口凭证
openid String 普通用户标识,通过调用getLoginAccessToken,getLoginRefreshAccessToken或者getLoginUnionID可获得该唯一标识符

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例:

  1. var params = {
  2. access_token:"ACCESS_TOKEN",
  3. openid:"OPENID"
  4. };
  5. var data = JSON.stringify(params);
  6. uexWeiXin.getLoginUnionID(data);

setCallbackWindowName 设置接收回调方法的窗口名称

uexWeiXin.setCallbackWindowName(json)

说明:

该方法用于设置接收分享、登陆和支付相关回调方法的窗口名称。是修复程序偶尔收不到回调的补充方法。具体用法见示例。

参数:

  1. var json = {
  2. windowName:
  3. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
windowName String 窗口名称,此处窗口为主窗口名称,若在起始页,则窗口名称为”root”

支持平台:
Android 2.2+
iOS 6.0+
版本支持:

Android 3.1.32+
iOS 3.0.18+

示例:

示例1:

设置起始页(root页面)为接收回调的窗口:

  1. var params = {
  2. windowName:"root"
  3. };
  4. uexWeiXin.setCallbackWindowName(JSON.stringify(params));

示例2:

设置其他通过uexWindow.open接口打开的主窗口为接收回调的窗口:
open调用方法:

  1. uexWindow.open('share', '0', "share.html", '2', '', '', 4);
  2. //其中第一个参数(share)即为share.html窗口的窗口名称。

则在share.html中的uexOnload方法中要添加如下代码:

  1. var params = {
  2. windowName:"share"
  3. };
  4. uexWeiXin.setCallbackWindowName(JSON.stringify(params));

2.2 回调方法

cbRegisterApp 用户授权的回调方法

uexWeiXin.cbRegisterApp(opId,dataTpye,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data Number类型 必选 0-成功,1-失败。

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbRegisterApp=function(opCode,dataType,data){
  2. alert(data);
  3. }

cbWeiXinLogin 微信登录授权的回调方法

uexWeiXin.cbWeiXinLogin(opid,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 授权结果:0——-成功,-2——-用户取消,-4——-用户拒绝

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbWeiXinLogin = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGetWeiXinLoginAccessToken 获取微信accessToken的回调方法

uexWeiXin.cbGetWeiXinLoginAccessToken(opid,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data Json类型 必选 返回的数据

格式如下:

  1. {
  2. "access_token":"ACCESS_TOKEN",
  3. "expires_in":7200,
  4. "refresh_token":"REFRESH_TOKEN",
  5. "openid":"OPENID",
  6. "scope":"SCOPE"
  7. }

各字段说明:

图_uexWeiXin_3.0

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGetWeiXinLoginAccessToken = function (opCode,dataType,data) {
  2. alert(data);
  3. data = JSON.parse(data);
  4. openid=data.openid;
  5. access_token = data.access_token;
  6. refresh_token = data.refresh_token;
  7. }

cbGetWeiXinLoginCheckAccessToken 检验微信accessToken是否超时的回调方法

uexWeiXin.cbGetWeiXinLoginCheckAccessToken(opid,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data Number类型 必选 0——-(有效),1——-(无效)

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGetWeiXinLoginCheckAccessToken = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGetWeiXinLoginRefreshAccessToken 微信刷新或续期accessToken的回调方法

uexWeiXin.cbGetWeiXinLoginRefreshAccessToken(opid,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data Json类型 必选 返回的数据

正确返回格式:

  1. {
  2. "access_token":"ACCESS_TOKEN",
  3. "expires_in":7200,
  4. "refresh_token":"REFRESH_TOKEN",
  5. "openid":"OPENID",
  6. "scope":"SCOPE"
  7. }

各字段说明见:

图_uexWeiXin_3.0

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGetWeiXinLoginRefreshAccessToken = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGetWeiXinLoginUnionID 获取用户个人信息的回调方法

uexWeiXin.cbGetWeiXinLoginUnionID(opid,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data Json类型 必选 返回的数据

data的格式:

  1. {
  2. "openid": "OPENID",
  3. "nickname": "NICKNAME",
  4. "sex": 1,
  5. "province": "PROVINCE",
  6. "city": "CITY",
  7. "country": "COUNTRY",
  8. "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
  9. "privilege": [
  10. "PRIVILEGE1",
  11. "PRIVILEGE2"
  12. ],
  13. "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
  14. }

各字段说明:

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGetWeiXinLoginUnionID = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbIsWXAppInstalled 检查微信是否已安装的回调方法

uexWeiXin.cbIsWXAppInstalled(opId,dataTpye,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data Number类型 必选 0-已安装,1-未安装。

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbIsWXAppInstalled = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGetWXAppInstallUrl 获取微信的itunes安装地址的回调方法

uexWeiXin.cbGetWXAppInstallUrl(opId,dataTpye,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 微信安装地址

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGetWXAppInstallUrl = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbIsWXAppSupportApi 判断API是否被支持的回调方法

uexWeiXin.cbIsWXAppSupportApi(opId,dataTpye,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 0-成功,1-失败。

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbIsWXAppSupportApi = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGetApiVersion 获取SDK的版本号的回调方法

uexWeiXin.cbGetApiVersion(opId,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 SDK版本号

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGetApiVersion = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbSendTextContent 分享文本的回调方法(旧接口不推荐)

uexWeiXin.cbSendTextContent(opId,dataTpye,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 微信返回的错误码

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbSendTextContent = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbSendImageContent 分享图片的回调方法(旧接口不推荐)

uexWeiXin.cbSendImageContent(opId,dataTpye,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 微信返回的错误码

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbSendImageContent = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbShareTextContent 分享文本的回调方法

uexWeiXin.cbShareTextContent(data)

参数:

参数名称 参数类型 是否必选 说明
data Number类型 必选 返回的错误码,0-成功,非0-失败.

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbShareTextContent = function (data) {
  2. alert(data);
  3. }

cbShareImageContent 分享图片的回调方法

uexWeiXin.cbShareImageContent(data)

参数:

参数名称 参数类型 是否必选 说明
data Number类型 必选 返回的错误码,0-成功,非0-失败.

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbShareImageContent = function (data) {
  2. alert(data);
  3. }

uexWeiXin.cbShareLinkContent(data)

参数:

参数名称 参数类型 是否必选 说明
data Number类型 必选 返回的错误码,0-成功,非0-失败.

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbShareLinkContent = function (data) {
  2. alert(data);
  3. }

cbIsSupportPay 是否支持支付功能的回调方法

uexWeiXin.cbIsSupportPay(opId,dataType,data);

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 是否支持支付功能,0-支持,1-不支持。

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbIsSupportPay = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGetPrepayId 生成预支付订单的回调接口

uexWeiXin.cbGetPrepayId(json);

参数:

json格式数据,参数详见微信开放平台文档统一下单接口参数说明中的”返回结果”

版本支持:

3.0.0+

示例:

  1. uexWeiXin.cbGetPrepayId = function(data){
  2. alert(data);
  3. }

cbStartPay 支付结果的回调方法

uexWeiXin.cbStartPay(json);

参数:

参数说明及生成办法详见微信开放平台文档调起支付接口参数说明中的”返回结果”

  1. var json = {
  2. errCode:,//状态码。0:成功;-1:错误;-2:用户取消
  3. errStr: //状态说明
  4. }

版本支持:

3.0.0+

示例:

  1. uexWeiXin.cbStartPay = function(data){
  2. alert(data);
  3. }

cbGetAccessToken 获取支付token的回调方法<旧版接口,新版插件不支持>使用新接口

uexWeiXin.cbGetAccessToken(opId,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 支付token

版本支持:

3.0.0+

示例:

  1. uexWeiXin.cbGetAccessToken = function(data){
  2. alert(data);
  3. }

cbGetAccessTokenLocal 获取本地支付token的回调方法<旧版接口,新版插件不支持>使用新接口

uexWeiXin.cbGetAccessTokenLocal(opId,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 支付token

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGetAccessTokenLocal = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGenerateAdvanceOrder 生成预支付订单的回调方法<旧版接口,新版插件不支持>使用新接口

uexWeiXin.cbGenerateAdvanceOrder(opId,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 预支付订单号。

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGenerateAdvanceOrder = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbGotoPay 支付回调方法<旧版接口,新版插件不支持>使用新接口

uexWeiXin.cbGotoPay(opId,dataType,data)

参数:

参数名称 参数类型 是否必选 说明
opId Number类型 必选 操作ID,此函数中不起作用,可忽略。
dataType Number类型 必选 数据类型详见CONSTANT中Callback方法数据类型
data String类型 必选 json格式如下:{“errCode”:0,”errStr”:””}
errCode String类型 必选 json格式如下
  1. {
  2. "errCode"://支付成功返回0;否则返回错误码,
  3. "errStr"://错误信息
  4. }

版本支持:

3.0.0+

示例

  1. uexWeiXin.cbGotoPay = function (opCode,dataType,data) {
  2. alert(data);
  3. }

cbLogin 登录的回调方法

uexWeiXin.cbLogin(data)

参数:

  1. var data = {
  2. errCode: "0",
  3. code: "CODE",
  4. country: "CN",
  5. language: "zh_CN",
  6. state: "0902"
  7. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
errCode Number 0:用户同意;-4:用户拒绝授权;-2:用户取消
code String 用户换取access_token的code,仅在errCode为0时有效
country String 微信用户当前国家信息
language String 微信客户端当前语言
state String 第三方程序发送时用来标识其请求的唯一性的标志,由login接口传入,由微信终端回传,state字符串长度不能超过1K。仅在errCode为0时有效

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例

  1. uexWeiXin.cbLogin = function (data) {
  2. alert(data);
  3. }

cbGetLoginAccessToken 获取access_token的回调方法

uexWeiXin.cbGetLoginAccessToken(data)

参数:

  1. var data = {
  2. access_token: "ACCESS_TOKEN",
  3. expires_in: 7200,
  4. refresh_token: "REFRESH_TOKEN",
  5. openid: "OPENID",
  6. scope: "snsapi_userinfo",
  7. unionid:"UNIONID"
  8. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
access_token String 接口调用凭证
expires_in Number access_token接口调用凭证超时时间,单位(秒)
refresh_token String 用户刷新access_token
openid String 授权用户唯一标识
scope String 用户授权的作用域,使用逗号(,)分隔
unionid String 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例

  1. uexWeiXin.cbGetLoginAccessToken = function (data) {
  2. alert(data);
  3. }

cbGetLoginRefreshAccessToken 获取刷新access_token的回调方法

uexWeiXin.cbGetLoginRefreshAccessToken(data)

参数:

  1. var data = {
  2. access_token: "ACCESS_TOKEN",
  3. expires_in: 7200,
  4. refresh_token: "REFRESH_TOKEN",
  5. openid: "OPENID",
  6. scope: "snsapi_userinfo"
  7. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
access_token String 接口调用凭证
expires_in Number access_token接口调用凭证超时时间,单位(秒)
refresh_token String 用户刷新access_token
openid String 授权用户唯一标识
scope String 用户授权的作用域,使用逗号(,)分隔

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例

  1. uexWeiXin.cbGetLoginRefreshAccessToken = function (data) {
  2. alert(data);
  3. }

cbGetLoginCheckAccessToken 检验access_token是否有效的回调方法

uexWeiXin.cbGetLoginCheckAccessToken(data)

参数:

  1. var data = {
  2. errcode: 0
  3. errmsg: "ok"
  4. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
errcode Number 返回码,0:有效。非0:无效。返回码参考返回码说明
errmsg String 返回码文字描述

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例

  1. uexWeiXin.cbGetLoginCheckAccessToken = function (data) {
  2. alert(data);
  3. }

cbGetLoginUnionID 获取用户个人信息的回调方法

uexWeiXin.cbGetLoginUnionID(data)

参数:

  1. var data = {
  2. openid: "OPENID",
  3. nickname: "xxx",
  4. sex: 2,
  5. language: "zh_CN",
  6. city: "",
  7. province: "",
  8. country: "CN",
  9. headimgurl: "xxxx",
  10. privilege: [],
  11. unionid: "UNIONID"
  12. }

各字段含义如下:

参数名称 参数类型 是否必选 说明
openid String 普通用户的标识,对当前开发者帐号唯一
nickname String 普通用户昵称
sex String 普通用户性别,1为男性,2为女性
language String 微信客户端当前语言
city String 普通用户个人资料填写的城市
province String 普通用户个人资料填写的省份
country String 国家,如中国为CN
headimgurl String 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
privilege String 用户特权信息,json数组,如微信沃卡用户为(chinaunicom)
unionid String 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。

支持平台:
Android 2.2+
iOS 6.0+

版本支持:

Android 3.1.31+
iOS 3.0.17+

示例

  1. uexWeiXin.cbGetLoginUnionID = function (data) {
  2. alert(data);
  3. }

3、更新历史

iOS

API版本:uexWeiXin-3.0.20

最近更新时间:2016-5-18

历史发布版本 更新内容
3.0.20 更新SDK版本至1.7.0,支持兼容ipv6
3.0.19 修复getWeiXinLoginAccessToken失败的bug
3.0.18 修改回调方式,支持setCallbackWindowName接口;部分支持IDE
3.0.17 新增一版微信登陆相关接口
3.0.16 微信分享纯图片添加可选参数title
3.0.15 uexWeiXin.cbStartPay 回调结构修正
3.0.14 新增接口getPrepayId和startPay及相应回调,以支持V3 V4支付
3.0.13 增加微信授权登录的五个接口以及相对应的回 调方法
3.0.12 支持arm64
3.0.11 修改shareLinkContent,shareImageContent,shareTextContent三个接口的回调
3.0.10 增加shareLinkContent,shareImageContent,shareTextContent三个接口
3.0.9 修复获取预支付订单失败的问题
3.0.8 调整微信支付接口
3.0.7 修复微信分享回调只是返回0的bug
3.0.6 统一回调方法名
3.0.5 统一回调参数
3.0.4 添加分享成功回调
3.0.2 修正微信分享HTTP图片失败的bug
3.0.1 修正微信分享照片失败的bug
3.0.0 微信分享功能插件

Android

API版本:uexWeiXin-3.1.34

最近更新时间:2016-5-11

历史发布版本 更新内容
3.1.34 支持https
3.1.33 修复和完善抛出异常的捕获
3.1.32 新增setCallbackWindowName接口,解决偶尔收不到回调的问题
3.1.31 更新微信登陆相关接口
3.0.30 修复微信支付返回时偶尔没有回调的问题
3.0.29 微信支付sdk升级
3.0.28 修正链接分享时图片本来已经比较小 不需要缩略导致的问题
3.0.27 修复分享回调时应用奔溃退出的问题
3.0.26 修改回调方法
3.0.25 新添加微信登陆功能
3.0.24 修改分享文本、分享图片、分享链接回调接口参数
3.0.23 结合后台修复插件需要定制出包的问题
3.0.22 修复在Popover中微信分享失败问题
3.0.21 新增分享文本、分享图片、分享链接接口
3.0.20 插件包增加src目录文件,用于解决回调的定制问题
3.0.19 修复分享图片不支持wgt路径协议的问题
3.0.18 修复分享完成回调时奔溃的问题
3.0.17 修复分享完成回调时网页未恢复的问题
3.0.16 修改AndroidManifest文件中微信相关activity注册信息
3.0.15 更新插件中引擎jar包
3.0.14 修复支付完成回调时网页未恢复的问题
3.0.13 新增接口generatePrepayID和sendPay
3.0.12 修复微信支付完成后没有回调的问题
3.0.11 修改cbIsWXAppInstalled回调方法参数,已安装返回0,未安装返回1
3.0.10 修改mainfest添加微信activity
3.0.9 添加cbSendTextContent和cbSendImageContent回调
3.0.8 添加注册回调cbRegisterApp
3.0.7 添加架包
3.0.6 处理分享图片问题
3.0.5 修复扶贫基金会中的回调兼容问题
3.0.4 处理微信返回值问题
3.0.3 修复微信不能生成订单问题
3.0.2 修复配置问题
3.0.1 修复微信资源问题
3.0.0 微信分享功能插件