[SWE10010 ]使用微信支付/没有PayReq这个类
使用UShare微信分享\登录功能情况下如何使用微信支付功能
问题描述
使用UShare微信分享\登录功能情况下如何同时使用微信支付功能?
为什么WXApiObject文件里没有PayReq这个类?
问题原因
微信原生SDK有包含微信支付和不包含微信支付两个版本,友盟UShare微信分享组件中不包含微信支付模块,所以UShare SDK里的WXApiObject文件里没有PayReq对象
解决方案
1、首先在微信开放平台下载带支付功能的SDK并添加至工程中,调用接口同样参照微信官方文档

2、必须集成友盟分享微信完整版

3、用微信官方包含支付功能的库libWeChatSDK.a及相关的头文件:WxApiObject.h、WxApi.h和WechatAuthSDK.h替换掉UShare组件中同名的库文件和头文件
其他UShare相关库文件仍然需要添加至工程中,linSocialOffcialWechat.a代表了微信完整版,libSocialWeChat.a代表了微信精简版(友盟微信完整版代码依赖精简版代码功能,但是不会出现只集成微信精简版“未验证应用“问题),这两个文件也必须要添加

重要
用微信包含支付的库文件替换方式只能通过上述手动集成方式完成,因为自动集成方式这样替换会校验不通过,因此要想同时使用支付和分享功能,请您采用手动集成方式
使用微信完整版判断支付的流程如下:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
{
//step1 判断支付
//支付会包含微信的appid和pay字段
//例如:
//https://xxx/wx60d36f0847db422c/pay/?returnKey=&ret=0
NSString* webpageStr = userActivity.webpageURL.absoluteString;
if ([webpageStr containsString:@"wx60d36f0847db422c"] && [webpageStr containsString:@"pay"]) {
BOOL isok = [WXApi handleOpenUniversalLink:userActivity delegate:self];
if (isok) {
return YES;
}
}
//step2 分享,授权回调
if (![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]) {
// 其他SDK的回调
}
return YES;
}