2018-06-01 17:48:15 weixin_38548646 阅读数 3899
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27752 人正在学习 去看看 秦子恒

最近工作中遇到了使用微信二次分享的时候,标题被截短,描述也变成了链接,图片也没有,决定分享一下,需要的人可以尝试一下。

参考:微信开发文档https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

一切都是按开发文档按部就班的进行,注意步骤二中:

本人在项目中直接在引用的是http的,做完后,各种调试android没一点问题,但IOS死活就是不行,并且连微信中的debug模式都没能弹出error信息,经过调试发现引入上述的JS文件有问题,然后尝试着改成了https的开头,IOS一切的调试信息都有了,配置成功。好坑人啊,也没做出解释

2017-06-27 10:47:36 wtdask 阅读数 31119
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27752 人正在学习 去看看 秦子恒

原文链接:http://www.smallerpig.com/1202.html?utm_source=tuicool&utm_medium=referral

当用户在群聊中点击小程序的分享卡片,开发者可获取群 ID 和群名称,更好地针对群场景提供个性化服务。
通常开发者希望分享出去的小程序被二次打开的时候能够获取到一些信息,例如群聊名字或者是群的标识。现在通过调用 wx.showShareMenu 并且设置 withShareTicket 为 true ,当用户将小程序分享到任一群聊之后,可以获取到此次分享的 shareTicket

Page({

  data: {
  },

  onLoad: function () {
    wx.showShareMenu({
      withShareTicket: true,
      success: function (res) {
        // 分享成功
        console.log('shareMenu share success')
        console.log('分享'+res)
      },
      fail: function (res) {
        // 分享失败
        console.log(res)
      }
    })
  },
  onShareAppMessage: function () {
    return {
      title: '这里是机智life小程序',
      path: '/page/index/index?id=123',
      success: function (res) {
        console.log(res.shareTickets[0])
        // console.log
        wx.getShareInfo({
          shareTicket: res.shareTickets[0],
          success: function (res) { console.log(res) },
          fail: function (res) { console.log(res) },
          complete: function (res) { console.log(res) }
        })
      },
      fail: function (res) {
        // 分享失败
        console.log(res)
      }
    }
  }

})
2016-12-14 10:25:51 u013241923 阅读数 8484
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27752 人正在学习 去看看 秦子恒

开始创建应用,通过审核等 我就不说了..

首先下载,微信的SDK

然后将jar包导入项目  ,可参考微信开发文档,然后有文档了,为什么还要写这个文章?对吧 

我只能吐槽,写开发文档的人太懒了.,好多没写明白

private String APP_ID = "00000000000000000"; //微信 APPID
private IWXAPI iwxapi;

private void regToWx() {
    iwxapi = WXAPIFactory.createWXAPI(context, APP_ID, true);//这里context记得初始化
    iwxapi.registerApp(APP_ID);
}
IMServer.getDiskBitmap(IMServer.url);
这个是我写的 一个从内存卡读取照片的类..   可根据自己需求更改

private void wxShare() {
    Bitmap bp = IMServer.getDiskBitmap(IMServer.url);
    WXImageObject wxImageObject = new WXImageObject(bp);
    WXMediaMessage msg = new WXMediaMessage();
    msg.mediaObject = wxImageObject;
    //设置缩略图
    Bitmap mBp = Bitmap.createScaledBitmap(bp, 120, 120, true);
    bp.recycle();
    msg.thumbData = bmpToByteArray(mBp, true);
    SendMessageToWX.Req req = new SendMessageToWX.Req();
    req.transaction = buildTransaction("img");//  transaction字段用
    req.message = msg;
    req.scene = SendMessageToWX.Req.WXSceneSession;
    iwxapi.sendReq(req);
}
我先上代码,我们看看上面的代码..设置缩略图那

官方给的 代码是  

msg.thumbData = Util.bmpToByteArray(thumbBitmap, true);


然后Util类,居然找不到(我用了qq的jar包,只能在这里找到.....)

所以我只能去demo里面找,然后把bmpToByteArray方法提取出来,如下

public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
    if (needRecycle) {
        bmp.recycle();
    }

    byte[] result = output.toByteArray();
    try {
        output.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}

然后再往下看,

    req.transaction = buildTransaction("img");//  transaction字段用

很明显  后面的是一个方法, 官方也没给出...   老方法 ,去demo里面找,如下

private String buildTransaction(final String type) {
    return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}


2018-03-30 11:41:25 u012411480 阅读数 448
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27752 人正在学习 去看看 秦子恒

需要:

注册微信开放平台,创建应用并提交,审核通过后,打开微信开放平台,点击管理应用,在审核通过后的应用信息页面,申请微信登录

注意点:

1.创建应用的时候,iOS需要bundle id ,安卓需要package name, 建议开发人员提供给创建应用人员,需要保证创建的应用的bundleID和项目里保持一致,不然调用微信登录授权会不成功

2.审核通过后可以拿到appid 和secret,记录下来给开发人员

3.申请开通微信登录需要开发者资质认证,开发者资质认证就是交钱,国内300元人民币,国外120美元。

4.开发不用等上面这些,可以先做sdk接入,最后换掉appid ,secret就行了

-----------------------

开发:

开发其实网上有很多教程了,各种语言版本的。不过还是没有想到作为国外不使用微信的开发来说,他们说下载的微信注册不了。。手把手教怎么接入SDK后,终于登录成功,印度小伙伴问了我一个问题,“微信信息获取到了,我们用微信的账号和密码来注册我们的应用吗”,这一瞬间我联想到facebook的信息盗取。。。我又用了很久时间和他们解释我们不能拿到微信账号的账号和密码,我们有别的方式来注册我们的应用,巴拉巴拉。。。

简易的开发流程:

1.Download the latest SDK,You can also add the [WechatOpenSDK] folder.download:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319164&token=&lang=zh_CN


 2.target-link library

 
 3.target  -  Info - URL Types:add appid
 
 4.info.plist :add LSApplicationQueriesSchemes:wechat;weixin
 

 5.wxapi registerapp (用appid,appdelegate.m)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //regist
    //5.wxapi registerapp
    [WXApi registerApp:APPID];
    return YES;
}

6.在点击打开微信的方法中添加调起微信客户端

if ([WXApi isWXAppInstalled]) {
        //authorization,Call WeChat login
        SendAuthReq *request = [[SendAuthReq alloc]init];
        request.state = @"App";
        request.scope = @"snsapi_userinfo";//Obtain public information
        [WXApi sendReq:request];
        NSLog(@"login-->%d",[WXApi sendReq:request]);
        
    }else{
        NSLog(@"wechat not install");
    }

open wechat will call this method, add <WXApiDelegate>

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
    //6.Handle the data passed when WeChat starts the App via URL.
    [WXApi handleOpenURL:url delegate:self];
    return YES;
}
7.wechat callback,打开微信,微信会返回一个 code
//7.WeChat callback, whether login or share success or not, is to follow this method @brief send a sendReq and receive WeChat response.
- (void)onResp:(BaseResp *)resp{
    NSLog(@"resp:%d",resp.errCode);
    if ([resp isKindOfClass:[SendAuthResp class]]) {
        SendAuthResp *rep = (SendAuthResp *)resp;
        if (rep.errCode == 0) {
            //success
            [self wxlogin:rep.code];
        }
    }
}

8.把code,appid,secret拿去请求得到access_token,refresh_token,openid

[manager GET:[NSString stringWithFormat:@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code",URL_APPID,URL_SECRET,code] parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {  //获得access_token,然后根据access_token获取用户信息请求。Get the user information request.
        
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"dic %@",dic);
        
        /*
         access_token   接口调用凭证Interface call certificate
         expires_in access_token接口调用凭证超时时间,单位(秒)
         refresh_token  用户刷新access_token
         openid 授权用户唯一标识The unique identity of the authorized user.
         scope  用户授权的作用域,使用逗号(,)分隔User authorization scope.
         unionid     当且仅当该移动应用已获得该用户的userinfo授权时,才会出现该字段
         */
        NSString* accessToken=[dic valueForKey:@"access_token"];
        NSString* openID=[dic valueForKey:@"openid"];

他们问我这样一个问题,微信登录后如何注册,如果微信登录后账号注册,退出登录后再用微信登录,怎么保证是同一个人。数据库的存储映射问题。token过期问题。

token过期及openid持久化保存方法

下面两张图辅助解释逻辑流




9.使用上一步得到的access_token ,openid来请求获取用户信息 

[manager GET:[NSString stringWithFormat:@"https://api.weixin.qq.com/sns/userinfo?access_token=%@&openid=%@",token,openID] parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSDictionary *dic = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"dic  ==== %@",dic);
        
   
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"error %ld",(long)error.code);
    }];

获取到的用户信息有:city;     country;    privileage;    language;    headimgurl;    unionid;    nickname;    sex

当然不会拿到微信的登录账号和密码。。


第三方登录中文博客

RN的做法:

GitHub 

http://www.lcode.org/超详细react-native实现微信好友朋友圈分享功能-androidios双平台/

2018-02-03 14:35:48 BigShark66 阅读数 62971
  • 微信支付开发-微信公众号开发12-微信开发php

    微信公众平台开发之微信支付开发是子恒老师《微信公众平台开发》视频教程的第12部。详细讲解了用php进行微信支付的开发。内容包含获取支付密钥,微信公众号支付开发,扫码支付,微信刷卡支付,异步处理支付结果等等。欢迎反馈,微信/QQ:68183131

    27752 人正在学习 去看看 秦子恒

今天遇到的一个bug

由于应用BundleID信息校验不通过,无法分享到微信

所有人的分享功能都是好好的,只有一个用户发截图给我们反馈。

解决方法:

 登陆微信开放平台下的对应应用,进入完善开发信息中的,Bundle ID: ,填完即好。


微信模版消息开发

阅读数 2791

没有更多推荐了,返回首页