百宝云论坛

 找回密码
 立即注册
查看: 805|回复: 0

[应用中心] 开发者-云商品登录购买与匿名购买篇

[复制链接]

96

主题

220

帖子

1379

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1379
发表于 2016-10-20 21:08:22 | 显示全部楼层 |阅读模式
云商品登录购买与匿名购买篇

云商品的购买支持登录购买与匿名购买,但是都需要作者们去实现相应的事件。
这2个事件的实现,我们在下面来一一讲解。

登录购买的实现

登录购买对应的百宝云事件为:_buy事件,所以需要作者实现这个事件。
实现的代码可以根据下面的流程图来写。流程图如下:


代码片段:
  1. //account       购买人
  2. //order         订单号
  3. //merchandise   商品名称  
  4. //merch_type    商品类型
  5. //num           商品数量
  6. //remark        预留参数
  7. function _buy(购买人, 订单号, 商品名称, 商品类型, 单价, 商品数量, 预留参数)
  8.     var sArr = array()
  9.     sArr["购买人"] = 购买人
  10.     sArr["订单号"] = 订单号
  11.     sArr["商品名称"] = 商品名称
  12.     sArr["商品类型"] = 商品类型
  13.     sArr["单价"] = 单价
  14.     sArr["商品数量"] = 商品数量
  15.     filelog("登录购买参数:" & sArr)
  16.     //1、处理本地数据库需要进行的一些操作,并组合商品信息,支持html
  17.     var result = 提取商品对应卡(购买人, 订单号, 商品名称, 商品类型, 商品数量)
  18.     if(strlen(result) == 0)
  19.         shipment(订单号, false, "生成商品失败,数据库操作出错")
  20.         filelog("生成商品失败,数据库操作出错")
  21.         return 0
  22.     end
  23.    
  24.     //2、进行发货操作
  25.     //参数1     订单号
  26.     //参数2     通知用户,发货成功还是发货失败,填true表示发货成功,填false表示发货异常
  27.     //参数3     通知用户的具体信息内容,支持 html 标签
  28.     var ret = shipment(订单号, true, result)
  29.    
  30.     //3、判断发货是否成功,如果发货失败,需要删除数据库中已经添加数据
  31.     if(!ret)
  32.         //如果发货失败,需要删除数据库中已经添加数据
  33.         if(!清除商品卡(订单号))
  34.             filelog(strformat("发货失败,回滚数据库操作失败:%s,请作者手动处理订单号【%s】的数据!", getlasterror(1), 订单号))
  35.         end
  36.         //如果发货失败,需要删除数据库中已经添加数据
  37.     else
  38.         修改订单支付状态(订单号)
  39.         var logstr = strformat("登录购买成功,购买人:%s, 一共提卡%s张%s卡", 购买人, 商品数量, 商品类型)
  40.         filelog(logstr)
  41.     end
  42. end
复制代码

教程视频:


匿名购买的实现

匿名购买对应的百宝云事件为:_noaccountbuy、_ordernotify事件,所以需要作者实现这2个事件。
实现的代码可以根据下面的流程图来写。流程图如下:




代码片段:
  1. //account 作者账号,order 订单号
  2. //merchandise 商品名称  merch_type 自定义类型,num 数量,remark 预留参数
  3. function _noaccountbuy(订单号, 商品名称, 商品类型, 单价, 商品数量, 预留参数)
  4.     var 购买人 = 预留参数
  5.     var sArr = array()
  6.     sArr["购买人"] = 购买人
  7.     sArr["订单号"] = 订单号
  8.     sArr["商品名称"] = 商品名称
  9.     sArr["商品类型"] = 商品类型
  10.     sArr["单价"] = 单价
  11.     sArr["商品数量"] = 商品数量
  12.     filelog("匿名购买参数:" & sArr)
  13.    
  14.     if(商品类型 != "小时卡" && 商品类型 != "天卡" && 商品类型 != "周卡" && 商品类型 != "月卡" && 商品类型 != "季卡" && 商品类型 != "年卡")
  15.         shipment(订单号, false, "生成商品失败,匿名购买只能购买指定类型的卡")
  16.         return 0
  17.     end
  18.    
  19.     //1、 进行预发货操作
  20.     var result = 提取商品对应卡(购买人, 订单号, 商品名称, 商品类型, 商品数量)
  21.     if(strlen(result) == 0)
  22.         shipment(订单号, false, "生成商品失败,数据库操作出错")
  23.         filelog("生成商品失败,数据库操作出错")
  24.         return 0
  25.     end
  26.    
  27.     //2、进行发货操作
  28.     //参数1     订单号
  29.     //参数2     通知用户,发货成功还是发货失败,填true表示发货成功,填false表示发货异常
  30.     //参数3     通知用户的具体信息内容,支持 html 标签
  31.     var ret = shipment(订单号, true, result)
  32.    
  33.     //3、判断发货是否成功,如果发货失败,需要删除数据库中已经添加数据
  34.     if(!ret)
  35.         //如果发货失败,需要删除数据库中已经添加数据
  36.         if(!清除商品卡(订单号))
  37.             filelog(strformat("发货失败,回滚数据库操作失败:%s,请作者手动处理订单号【%s】的数据!", getlasterror(1), 订单号))
  38.         end
  39.         //如果发货失败,需要删除数据库中已经添加数据
  40.     end
  41. end

  42. function _ordernotify(order, status, remark)
  43.     var sArr = array()
  44.     sArr["order"] = order
  45.     sArr["status"] = status
  46.     sArr["remark"] = remark
  47.     filelog("匿名购买确认参数:" & sArr)
  48.    
  49.     confirmedorder(order)  // 确认订单,此方法必须调用
  50.     if(status)
  51.         修改订单支付状态(order)
  52.         var goodsArr = jsontoarray(remark)
  53.         var 购买人 = goodsArr["email"]
  54.         var 商品数量 = goodsArr["num"]
  55.         var 商品类型 = goodsArr["merch_type"]
  56.         var logstr = strformat("匿名购买成功,购买人邮箱:%s, 一共提卡%s张%s卡", 购买人, 商品数量, 商品类型)
  57.         filelog(logstr)
  58.     else
  59.         if(!清除商品卡(order))
  60.             filelog(strformat("发货失败,回滚数据库操作失败:%s,请作者手动处理订单号【%s】的数据!", getlasterror(1), order))
  61.         end
  62.     end
  63. end
复制代码

视频教程观看:



示例代码下载

如果看教程不会写代码,可以下载示例的代码进行修改。



有疑问进群咨询:309604797




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持
关闭
售后
在线客服
QQ群:309604797
在线客服

小黑屋|百宝云论坛 ( 湘ICP备15007281号-2 )

GMT+8, 2018-6-18 05:51

Powered by bby! X3.4

© 2015-2018 baibaoyun

快速回复 返回顶部 返回列表