|
云商品登录购买与匿名购买篇
云商品的购买支持登录购买与匿名购买,但是都需要作者们去实现相应的事件。
这2个事件的实现,我们在下面来一一讲解。
登录购买对应的百宝云事件为:_buy事件,所以需要作者实现这个事件。
实现的代码可以根据下面的流程图来写。流程图如下:
代码片段:
- //account 购买人
- //order 订单号
- //merchandise 商品名称
- //merch_type 商品类型
- //num 商品数量
- //remark 预留参数
- function _buy(购买人, 订单号, 商品名称, 商品类型, 单价, 商品数量, 预留参数)
- var sArr = array()
- sArr["购买人"] = 购买人
- sArr["订单号"] = 订单号
- sArr["商品名称"] = 商品名称
- sArr["商品类型"] = 商品类型
- sArr["单价"] = 单价
- sArr["商品数量"] = 商品数量
- filelog("登录购买参数:" & sArr)
- //1、处理本地数据库需要进行的一些操作,并组合商品信息,支持html
- var result = 提取商品对应卡(购买人, 订单号, 商品名称, 商品类型, 商品数量)
- if(strlen(result) == 0)
- shipment(订单号, false, "生成商品失败,数据库操作出错")
- filelog("生成商品失败,数据库操作出错")
- return 0
- end
-
- //2、进行发货操作
- //参数1 订单号
- //参数2 通知用户,发货成功还是发货失败,填true表示发货成功,填false表示发货异常
- //参数3 通知用户的具体信息内容,支持 html 标签
- var ret = shipment(订单号, true, result)
-
- //3、判断发货是否成功,如果发货失败,需要删除数据库中已经添加数据
- if(!ret)
- //如果发货失败,需要删除数据库中已经添加数据
- if(!清除商品卡(订单号))
- filelog(strformat("发货失败,回滚数据库操作失败:%s,请作者手动处理订单号【%s】的数据!", getlasterror(1), 订单号))
- end
- //如果发货失败,需要删除数据库中已经添加数据
- else
- 修改订单支付状态(订单号)
- var logstr = strformat("登录购买成功,购买人:%s, 一共提卡%s张%s卡", 购买人, 商品数量, 商品类型)
- filelog(logstr)
- end
- end
复制代码
教程视频:
匿名购买对应的百宝云事件为:_noaccountbuy、_ordernotify事件,所以需要作者实现这2个事件。
实现的代码可以根据下面的流程图来写。流程图如下:
代码片段:
- //account 作者账号,order 订单号
- //merchandise 商品名称 merch_type 自定义类型,num 数量,remark 预留参数
- function _noaccountbuy(订单号, 商品名称, 商品类型, 单价, 商品数量, 预留参数)
- var 购买人 = 预留参数
- var sArr = array()
- sArr["购买人"] = 购买人
- sArr["订单号"] = 订单号
- sArr["商品名称"] = 商品名称
- sArr["商品类型"] = 商品类型
- sArr["单价"] = 单价
- sArr["商品数量"] = 商品数量
- filelog("匿名购买参数:" & sArr)
-
- if(商品类型 != "小时卡" && 商品类型 != "天卡" && 商品类型 != "周卡" && 商品类型 != "月卡" && 商品类型 != "季卡" && 商品类型 != "年卡")
- shipment(订单号, false, "生成商品失败,匿名购买只能购买指定类型的卡")
- return 0
- end
-
- //1、 进行预发货操作
- var result = 提取商品对应卡(购买人, 订单号, 商品名称, 商品类型, 商品数量)
- if(strlen(result) == 0)
- shipment(订单号, false, "生成商品失败,数据库操作出错")
- filelog("生成商品失败,数据库操作出错")
- return 0
- end
-
- //2、进行发货操作
- //参数1 订单号
- //参数2 通知用户,发货成功还是发货失败,填true表示发货成功,填false表示发货异常
- //参数3 通知用户的具体信息内容,支持 html 标签
- var ret = shipment(订单号, true, result)
-
- //3、判断发货是否成功,如果发货失败,需要删除数据库中已经添加数据
- if(!ret)
- //如果发货失败,需要删除数据库中已经添加数据
- if(!清除商品卡(订单号))
- filelog(strformat("发货失败,回滚数据库操作失败:%s,请作者手动处理订单号【%s】的数据!", getlasterror(1), 订单号))
- end
- //如果发货失败,需要删除数据库中已经添加数据
- end
- end
- function _ordernotify(order, status, remark)
- var sArr = array()
- sArr["order"] = order
- sArr["status"] = status
- sArr["remark"] = remark
- filelog("匿名购买确认参数:" & sArr)
-
- confirmedorder(order) // 确认订单,此方法必须调用
- if(status)
- 修改订单支付状态(order)
- var goodsArr = jsontoarray(remark)
- var 购买人 = goodsArr["email"]
- var 商品数量 = goodsArr["num"]
- var 商品类型 = goodsArr["merch_type"]
- var logstr = strformat("匿名购买成功,购买人邮箱:%s, 一共提卡%s张%s卡", 购买人, 商品数量, 商品类型)
- filelog(logstr)
- else
- if(!清除商品卡(order))
- filelog(strformat("发货失败,回滚数据库操作失败:%s,请作者手动处理订单号【%s】的数据!", getlasterror(1), order))
- end
- end
- end
复制代码
视频教程观看:
如果看教程不会写代码,可以下载示例的代码进行修改。
有疑问进群咨询:309604797
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|