类名 | 类描述 |
---|---|
VHGoodsObject | 推屏卡片类 |
方法 | 方法描述 |
---|---|
pushGoodsCardModel | 商品推屏 |
addGoodsInfo | 商品添加 |
deleteGoods | 商品删除 |
updateGoodsInfo | 商品更新 |
updateGoodsListWithCdnUrl | 商品列表快速刷新 |
goodsOrderItem | 支付状态 |
paySkipIsComplete | 跳转支付是否完成 |
errorDetail | 跳转支付失败详情 |
+ (void)goodsGetListComplete:(void (^)(NSArray <VHGoodsListItem *> *list, NSError *error))complete;
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
status | 是 | 1 | 状态(1. 上架 2.上架及推送上架) |
参数名称 | 备注 |
---|---|
ID | ID |
goods_id | 商品 ID |
price | 原价 |
discount_price | 优惠价 |
info | 商品描述 |
cover_img | 封面图片 |
url | 商品链接 |
qr_code_url | 二维码链接 |
name | 商品名称 |
shop_url | 店铺链接 |
third_goods_id | 三方商品 ID |
buy_type | 购买类型;1.平台购买 2.外链购买 3.自定义购买 |
webinar_goods_id | 活动商品 ID |
order_num | 排序 |
status | 上架状态;(0.下架 1.上架 2.推送上架) |
push_status | 推送状态;(0.未推送 1. 推送中 2.已推送) |
shop_show | 显示店铺 |
images | 图片集合 |
[VHGoodsObject goodsGetOnlineListWithStatus:1 complete:^(NSArray<VHGoodsListItem *> *list, NSError *error) {
if (list) {
// 获取成功,返回商品列表
}
if (error) {
// 获取失败,返回失败详情
}
// 刷新列表
[self.tableView reloadData];
}];
在提交订单前需要通过此接口获取订单必填项有哪些,以及平台支付的开通项有哪些
+ (void)goodsWebinarSettingInfoWithWebinarId:(NSString *)webinar_id complete:(void (^)(VHGoodsSettingItem *settingItem, NSError *error))complete;
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
webinar_id | 是 | 123456 | 活动 ID |
complete | 返回数据 | 完成返回详情,失败错误详情 |
参数名称 | 备注 |
---|---|
webinar_id | 活动 id |
enable_username | 开启姓名;0.否 1.是 |
enable_phone | 开启手机号;0.否 1.是 |
enable_remark | 开启留言;0.否 1.是 |
enable_wx | 开启微信;NO.否 YES.是 |
enable_ali | 开启支付宝;NO.否 YES.是 |
[VHGoodsObject goodsWebinarSettingInfoWithWebinarId:self.webinarInfo.webinarId complete:^(VHGoodsSettingItem *settingItem, NSError *error) {
__strong __typeof(weakSelf)self = weakSelf;
if (list) {
// 获取成功,返回设置详情
}
if (error) {
// 获取失败,返回失败详情
}
}];
+ (void)goodsWebinarOnlineGoodsInfoWithGoodsId:(NSString *)goods_id complete:(void (^)(VHGoodsListItem *goodsItem, NSError *error))complete;
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
goods_id | 是 | 123456 | 商品 ID |
complete | 返回数据 | 完成返回详情,失败错误详情 |
[VHGoodsObject goodsWebinarOnlineGoodsInfoWithGoodsId:item.goods_id complete:^(VHGoodsListItem *goodsItem, NSError *error) {
__strong __typeof(weakSelf)self = weakSelf;
if (goodsItem) {
}
if (error) {
}
}];
+ (void)goodsCreateOtherWithSwitchId:(NSString *)switch_id third_user_id:(NSString *)third_user_id username:(NSString *)username phone:(NSString *)phone remark:(NSString *)remark goods_id:(NSString *)goods_id quantity:(NSInteger)quantity pay_channel:(NSString *)pay_channel channel_source:(NSString *)channel_source pay_amount:(CGFloat)pay_amount complete:(void (^)(VHGoodsCreateOtherItem *createOtherItem, NSError *error))complete;
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
switch_id | 是 | 74932748 | 场次 ID |
third_user_id | 是 | 213798 | 三方用户 ID |
username | 否 (根据活动设置为准) | 阿超 | 姓名,不能超过 30 个字符 |
phone | 否(根据活动设置为准) | 13261699658 | 手机号(是国内手机号) |
remark | 否 | 不要香菜 | 留言备注,不能超过 50 个字符 |
goods_id | 是 | 8197231 | 商品 ID |
quantity | 是 | 10 | 数量,不能超过 100 个 |
pay_channel | 是 | WEIXIN | 支付渠道(取值范围:WEIXIN,ALIPAY) |
channel_source | 是 | main | 渠道来源(main) |
pay_amount | 是 | 100 | 实付金额 |
complete | 完成返回详情,失败错误详情 |
参数名称 | 备注 |
---|---|
order_no | 订单号 |
order_status | 订单状态 |
order_url | 支付 url |
referer | referer |
[VHGoodsObject goodsCreateOtherWithSwitchId:self.webinarInfo.webinarInfoData.data_switch.switch_id third_user_id:self.webinarInfo.webinarInfoData.join_info.third_party_user_id username:@"阿超" phone:@"13261699658" remark:@"不要香菜" goods_id:self.item.goods_id quantity:10 pay_channel:@"WEIXIN" channel_source:@"main" pay_amount:999 complete:^(VHGoodsCreateOtherItem *createOtherItem, NSError *error) {
if (createOtherItem) {
NSURL * url = [NSURL URLWithString:createOtherItem.order_url];
if (([createOtherItem.order_url containsString:@"wx"] || [createOtherItem.order_url containsString:@"ali"]) && self.skipWXOrALIPayBlock) {
// 判断如果包含微信或者支付宝则跳转三方支付
[self.goodsObject platformPaymentToPayWithOrderUrl:url scheme:@"demo.vhall.com" referer:referer];
} else {
// 打开url
[[UIApplication sharedApplication] openURL:url
options:@{}
completionHandler:^(BOOL success) {
NSLog(@"跳转%@", success ? @"完成" : @"失败");
}];
}
}
if (error) {
// 错误详情
}
}];
+ (void)goodsOrderInfoWithOrderNo:(NSString *)order_no complete:(void (^)(VHGoodsOrderInfo *orderInfo, NSError *error))complete;
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
order_no | 是 | 123456 | 创建订单后返回的订单号 |
complete | 返回数据 | 完成返回详情,失败错误详情 |
参数名称 | 备注 |
---|---|
order_no | 订单号 |
total_amount | 订单总金额 |
pay_amount | 实付金额 |
webinar_subject | 活动名称 |
created_at | 下单时间 |
username | 用户姓名 |
phone | 用户手机号 |
remark | 用户留言 |
order_status | 订单状态 |
pay_channel | 支付渠道 |
pay_time | 支付时间 |
service_code | 支付方式 |
trade_no | 交易流水号 |
webinar_id | 活动 ID |
buy_type | 购买类型(1.平台购买 2.外链购买 3.自定义购买) |
order_items | 订单明细 |
参数名称 | 备注 |
---|---|
goods_id | 商品 ID |
cover_img | 商品封面图片 |
price | 商品原价 |
discount_price | 商品优惠价 |
info | 商品描述 |
name | 商品名称 |
quantity | 商品数量 |
[VHGoodsObject goodsOrderInfoWithOrderNo:self.order_no complete:^(VHGoodsOrderInfo *orderInfo, NSError *error) {
if (orderInfo) {
[VHProgressHud showToast:[NSString stringWithFormat:@"支付状态 %@",orderInfo.order_status]];
}
if (error) {
[VHProgressHud showToast:error.domain];
}
}];
如果是三方平台支付,在创建订单完成后通过返回的 order_url 调用此方法唤起三方平台,上面已经给出使用示例
- (void)platformPaymentToPayWithOrderUrl:(NSURL *)url scheme:(NSString *)scheme referer:(NSString *)referer;
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
url | 是 | http wx ali... | 使用创建订单接口返回的 ext 地址,创建 url 对象进行跳转 |
scheme | 是 | demo.vhall.com | app 配置的 scheme,用来支付完成后返回应用,必须使用微信配置的顶级域名或子域名,例如顶级域名是 vhall.com,则可以设置为 demo.vhall.com |
referer | 是 | vhall.com | 用来配置微信支付授权的必传参数,最好使用微信配置的顶级域名 |
- (void)pushGoodsCardModel:(VHGoodsPushMessageItem *)model push_status:(NSInteger)push_status;
- (void)addGoodsInfo:(VHGoodsListItem *)goods_info cdn_url:(NSString *)cdn_url;
- (void)deleteGoods:(NSArray *)del_goods_ids cdn_url:(NSString *)cdn_url;
- (void)updateGoodsInfo:(VHGoodsListItem *)goods_info cdn_url:(NSString *)cdn_url;
- (void)updateGoodsListWithCdnUrl:(NSString *)cdn_url;
- (void)goodsOrderItem:(VHGoodsPayStatusItem *)item;
- (void)paySkipIsComplete:(BOOL)complete;
- (void)errorDetail:(NSError *)error;