微信业务相关(二) —— 微信SDK V1.8.6版本更新问题(一)

版本记录

版本号 时间
V1.0 2019.12.28 星期日

前言

很多app都有支付和提现功能,而移动支付中支付宝、微信无疑是国内重要的支付平台和工具,最近有一个项目需要增加微信支付功能,很久没有集成了,所以最近又重新集成并整理了下,希望对大家有所帮助。感兴趣的可以看下面几篇文章。
1. 微信业务相关(一) —— 微信支付集成(一)

需要环境

首先看下需要的环境配置

  • SDK版本: SDK1.8.6或以上
  • 微信版本: 7.0.7或以上
  • 系统版本: iOS12或以上

建议开发者接入新版本SDK, 覆盖测试微信7.0.7或以上版本、iOS12或13,以验证所使用的接口的功能性和可用性。


SDK更新内容

1. 内容更新

2019年下半年微信的SDK更新了,主要是更新了下面几个地方。

  • 新增支持Universal Links进行安全性验证
    • 在iOS9之前,要在浏览器中唤醒APP,我们通常使用scheme。这种方式需要提前判断系统中是否安装了能够响应此schemeApp。当用户点击Universal Links时,iOS会将链接直接重定向到您的应用程序,而无需通过Safari或您的网站进行路由。

2. API的更改

  • 相关的注册等接口进行了更改。
  • 发送请求的接口进行了更改。

我们需要更改什么?

关于如何配置Universal Links等这里就不多说了,大家可以去网站上进行搜索参考别人的配置即可。

大家的App应该不是第一版,所以这里就只说更改,不说已有的集成流程了。

1. 微信开发平台新增Universal Links配置

在维信开发平台上新增了Universal Links这一栏,这里需要我们添加Universal Links。这样微信就可以根据这个Universal Links找到我们的App。

请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。

2. 新增URL scheme

在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixinweixinULAPI

这里weixinULAPI是新增的。

3. 重写AppDelegate的continueUserActivity方法

xcode中重写continueUserActivity的方法,如下所示:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler {
  return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

需要注意的是:这个是官网的例子,但是不一定这么写,有可能你们的逻辑比这个复杂多了,你设置代理的地方也可能不是UIApplication,所以这里还是要灵活的进行处理。

4. 相关API的更改

1) 关于微信注册API的更改

微信注册的API在1.8.6中进行了更改。

1.8.6版本

/*! @brief WXApi的成员函数,向微信终端程序注册第三方应用。
 *
 * 需要在每次启动第三方应用程序时调用。
 * @attention 请保证在主线程中调用此函数
 * @param appid 微信开发者ID
 * @param universalLink 微信开发者Universal Link
 * @return 成功返回YES,失败返回NO。
 */
+ (BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink;

旧版本

/*! @brief WXApi的成员函数,向微信终端程序注册第三方应用。
 *
 * 需要在每次启动第三方应用程序时调用。第一次调用后,会在微信的可用应用列表中出现,默认开启MTA数据上报。
 * iOS7及以上系统需要调起一次微信才会出现在微信的可用应用列表中。
 * @attention 请保证在主线程中调用此函数
 * @param appid 微信开发者ID
 * @param typeFlag 应用支持打开的文件类型
 * @return 成功返回YES,失败返回NO。
 */
+(BOOL) registerApp:(NSString *)appid;

/*! @brief WXApi的成员函数,向微信终端程序注册第三方应用。
 *
 * 需要在每次启动第三方应用程序时调用。第一次调用后,会在微信的可用应用列表中出现。
 * iOS7及以上系统需要调起一次微信才会出现在微信的可用应用列表中。
 * @attention 请保证在主线程中调用此函数
 * @param appid 微信开发者ID
 * @param isEnableMTA 是否支持MTA数据上报
 * @return 成功返回YES,失败返回NO。
 */
+(BOOL) registerApp:(NSString *)appid enableMTA:(BOOL)isEnableMTA;


/*! @brief WXApi的成员函数,向微信终端程序注册应用支持打开的文件类型。
 *
 * 需要在每次启动第三方应用程序时调用。调用后并第一次成功分享数据到微信后,会在微信的可用应用列表中出现。
 * @see registerApp
 * @param typeFlag 应用支持打开的数据类型, enAppSupportContentFlag枚举类型 “|” 操作后结果
 */
+(void) registerAppSupportContentFlag:(UInt64)typeFlag;

先看下1.8.6版本的注册API,新的版本只有一个注册方法,删除了MTA机制。旧版本有三个方法。

2) 发送请求的更改

发送请求的API也进行了更改。

1.8.6版本

/*! @brief 发送请求到微信,等待微信返回onResp
 *
 * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型
 * SendAuthReq、SendMessageToWXReq、PayReq等。
 * @param req 具体的发送请求。
 * @param completion 调用结果回调block
 */
+ (void)sendReq:(BaseReq *)req completion:(void (^ __nullable)(BOOL success))completion;

/*! @brief 发送Auth请求到微信,支持用户没安装微信,等待微信返回onResp
 *
 * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持SendAuthReq类型。
 * @param req 具体的发送请求。
 * @param viewController 当前界面对象。
 * @param delegate  WXApiDelegate对象,用来接收微信触发的消息。
 * @param completion 调用结果回调block
 */
+ (void)sendAuthReq:(SendAuthReq *)req viewController:(UIViewController*)viewController delegate:(nullable id<WXApiDelegate>)delegate completion:(void (^ __nullable)(BOOL success))completion;

旧版本

/*! @brief 发送请求到微信,等待微信返回onResp
 *
 * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型
 * SendAuthReq、SendMessageToWXReq、PayReq等。
 * @param req 具体的发送请求,在调用函数后,请自己释放。
 * @return 成功返回YES,失败返回NO。
 */
+(BOOL) sendReq:(BaseReq*)req;

/*! @brief 发送Auth请求到微信,支持用户没安装微信,等待微信返回onResp
 *
 * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持SendAuthReq类型。
 * @param req 具体的发送请求,在调用函数后,请自己释放。
 * @param viewController 当前界面对象。
 * @param delegate  WXApiDelegate对象,用来接收微信触发的消息。
 * @return 成功返回YES,失败返回NO。
 */
+(BOOL) sendAuthReq:(SendAuthReq*)req viewController:(UIViewController*)viewController delegate:(id<WXApiDelegate>)delegate;

通过对比,可以看见,旧的API是返回BOOL类型的参数表示是否成功。而新的API是返回一个完成的completion block,返回的是success是否成功的值。


分享跳转二次问题

当用户首次使用新版本SDK发起分享时,将会出现如下交互流程:从App拉起微信-出现“正在连接”页面-返回App-重新打开微信。以上是新的安全验证流程,每个用户在首次使用时会出现上述跳转。

首先要说明的是这个不是问题。关于官网已经给了说明,第一次分享就会出现这个页面,下次就不会了。

只会弹出来一次

不是问题,所以不用管。

参考文章

1. Universal Links-- 微信支付(1.8.6)
2. 关于openSDK1.8.6的更新说明 - 微信官方平台

后记

本篇主要讲述了微信支付集成之V1.8.6版本SDK更新,感兴趣的给个赞或者关注~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容