title | date | author |
---|---|---|
wemartSDK 集成文档 |
2017-02-11 08:18:43 -0800 |
james/hera/timmy |
android 和iOS配置商城入口url方法相同.
获取到店铺主页链接: http://www.wemart.cn/mobile/?chanId=110&shelfNo=xxx&sellerId=xxx&a=shelf&m=index
-
获取店铺App Id。点击左上方“店铺设置”或者“平台设置”————>点击左侧“场景“————>点击蓝色按钮“创建APP“并输入APP名字,保存,保存成功后,即可看到APPID
-
添加url参数。在主页链接后面,添加必需的url参数:scenType=1&appId=xxx&userId=xxx&sign=xxx&native=false&payNative=true。 其中,userId为应用对应用户的唯一标识;sign参数为对字符串“appId = xxx&userId=xxx”进行RSA-SHA1签名,签名需要的私钥(即AppSecret)在AppId下方,获取方法参考上方获取店铺App Id步骤。 完整的商城入口url为:http://www.wemart.cn/mobile/?chanId=110&shelfNo=xxx&sellerId=xxx&a=shelf&m=index&native=false&payNative=true&scenType=1&appId=xxx&userId=xxx&sign=xxx
注意:上方“xxx”需用相应的值替换
在library/androidSDK中找到wemartSDK.aar文件,将wemartSDK加入项目中的lib文件夹;在支付宝官网下载支付宝SDK或者在library/androidSDK里拷贝alipaySDK.jar.
在app的build.gradle文件中,添加:
repositories {
flatDir {
dirs 'libs'
}
}
在dependencies中,添加:
compile files('libs/alipaySdk.jar')
compile(name: 'wemartSDK', ext: 'aar')
在AndroidMainifest.xml文件中,加入如下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
注意:微信支付和分享SDK只提供内容.获取到微信支付参数后,需要APP自己调起微信支付;分享也是需要APP自己调起分享,wemartSDK只提供支付参数和分享内容
Intent intent = new Intent(context,MallActivity.class);
intent.putExtra(“url”,xxx); //xxx为商城入口url
startActivity(intent);
说明:1)如您的App工程中已含有支付宝以及微信SDK,则按照集成步骤操作; 2)如您的App工程中仅含有支付宝或微信SDK之一,请加入您缺少的AliPay-o文件夹中的文件或WeChat-o文件夹中的文件,然后按照集成步骤操作; 3)如您的App工程中支付宝和微信SDK均无,则请先加入您缺少的AliPay-o文件夹中的文件以及WeChat-o文件夹中的文件,然后按照集成步骤操作;
在APP工程中导入WemartSDK.framework(静态库)(注意:区分Debug环境下 和 Release环境下的.framework,保证对应环境使用)以及Wemart.bundle(bundle资源文件),添加时记得勾选 Copy items if needed,然后参照下图,选中工程 Targat —> General —> Linked Frameworks and Libraries —> +,在输入框中,输入下图中需要的框架,选中并添加
以导航控制器为起始控制器,设置appScheme、wechatAppId(微信appId,注意:自收,则传从微信申请获得的微信AppId;平台代收,不用传值),如图(示例Demo中的AppDelegate.m文件中可查看代码)。另外,在WemartViewController中,保留了商城分享信息,请注意需在界面加载完成后,才可使用分享数据。
需要配置支付宝的appScheme,在 Target —> Info —> URL Type —> + ,添加URL Schemes 名称(注意:要与赋值给WemartViewController的appScheme保持一致),以确保支付后能回调回自己的App(尽量保持唯一,避免与其他App的标识混淆),如下图
选中 Info.plist 右键 —> Open As —> Source Code,增加如下代码,打开权限:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>wechat</string>
<string>weixin</string>
</array>
当微信支付成功之后,返回到App,需要通过WXApi通知SDK.代码如下:
将按照文档要求配置好的,商城入口url赋值给Demo中wemartVc的shopUrl(注意必填),将跳转微猫商城的事件写在App工程想要实现的事件中,目标控制器即要显示商城的控制器,如若App工程有全局隐藏导航栏的需求,可设置wemartVc的hidStatus属性为YES,WHHidden可以隐藏主页返回按钮如下图:
1)若使用支付宝原生支付,需在AppDelegate.m中参照Demo,实现以下两个方法(配合支付宝客户端回调)
// 9.0之前的API接口
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
// 9.0以后使用新API接口
(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options;
- 若工程接入SDK后界面空白,可在App工程下的“Info.plist”中,下检查是否已将要使用的URL Schemes列为白名单。若无,可直接添加:先添加 App Transport Security Settings 字典,再在字典下添加键值对 Allow Arbitrary Loads :YES ,效果如图:
也可以选中 Info.plist 右键 —> Open As —> Source Code ,增加如下代码:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>