企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 发放 API 奖品 / issue_prize >[info] 抽奖系统支持多种奖品类型,对于实物奖品/卡密等奖品可以由平台内部发放,但是接入 API 后,将支持 API 奖品。API 奖品是指由由应用端自动发放的,比如抵用券、金币、游戏道具等。在用户抽中 API 奖品后,抽奖工坊将通过此 API 通知应用端进行奖品发放。 ## **API 地址** >[info] 此 API 由云端往您的应用端 API 地址发送请求 ## **API 将传入参数** <table> <tr style="background:#f5f5f5;"> <th style="width:150px">参数名</th> <th style="width:120px">类型</th> <th style="width:100px">必须</th> <th style="width:200px">示例</th> <th>说明</th> </tr> <tr> <td>api</td> <td>字符串</td> <td>是</td> <td>issue_prize</td> <td>API名称,此处固定传入 issue_prize</td> </tr> <tr> <td>record_id</td> <td>整数</td> <td>是</td> <td>20301</td> <td>中奖记录的唯一ID</td> </tr> <tr> <td>prize_identifier</td> <td>字符串</td> <td>是</td> <td>gold_88</td> <td>奖品标识,详解表格下方说明</td> </tr> <tr> <td>user_identifier</td> <td>字符串</td> <td>是</td> <td>10001</td> <td>用户唯一标识</td> </tr> <tr> <td>exchange_info</td> <td>JSON字符串</td> <td>否</td> <td>{"手机":"18012345678"}</td> <td>用户提交的兑奖信息,详见下方表格说明</td> </tr> <tr> <td>time</td> <td>整数</td> <td>是</td> <td>1576830778</td> <td>时间戳 (Unix timestamp),精确到秒</td> </tr> <tr> <td>token</td> <td>字符串</td> <td>是</td> <td>xxxxxxxxxx</td> <td>访问令牌 token</td> </tr> </table> #### **参数详细说明** * **record_id**:是中奖记录的唯一 ID。有时候因为网络或程序错误导致 API 没有正确返回成功信息。抽奖工坊可能会二次通知 API 发放奖品。这种情况,就有可能造成重复发放奖品。因此在发放奖品的时候,可以记录这个唯一 ID,在发放奖品的时候检查一下对于的 ID 是否已经发放过。若发放过了,就直接返回 success 标识,避免重复发放奖品。 * **prize_identifier**:这个参数是奖品指的标识。在抽奖工坊添加 API 奖品的时候,除了奖品名称外,还需要填写一个奖品标识,即用于此处传送给应用端 API 。这个标识可以让我们更灵活的设置奖项。比如一个金币的奖品,可以设置这样一个标识:gold_xx,后面的 xx 表示金币的数量。例如 gold_88 表示 88 个金币,gold_120 表示 120 个金币。这样就可以在抽奖平台设置任意数额的金币奖品了。 * **exchange_info**:对于一些特殊的 API 奖品,有可能需要让中奖用户填一些兑奖的表达。此参数将回传用户填写的信息。比如电话号码、游戏账号等。 ## **返回** 通讯成功请返如以下 JSON,其中 msg 中的信息会原样显示给用户: ``` {"status":"success","msg":"优惠券已发放至您的账户,请注意查收。"} ``` 失败返回以下 JSON: ``` {"status":"error","msg":"系统错误,请稍后再试!"} ``` ## PHP 代码片段示例 ``` <?php ...... //发放奖品 case 'issue_prize': //获得参数 $uid = (int)$_POST["user_identifier"]; //获得中奖用户UID $prize_identifier = $_POST["prize_identifier"]; //奖品表示 //根据奖品标识获得奖品信息 $tempArr = explode("_",$prizeIdentifier); $type = $tempArr[0]; //奖品类型 $num = (int)$tempArr[1]; //数量 //在实际应用中,可以根据奖品的类型不同分别执行不同的奖品发放操作,例如发放道具、开通VIP权限等 switch($type){ case "gold": //金币 DB("user")->where("uid",$uid)->setInc("gold",$num); //返回提示 exit('{"status":"success","msg":"金币已发放至您的账户,请注意查收。"}'); break; case "coupon": //抵用券 DB("user")->where("uid",$uid)->setInc("coupon",$num); //返回提示 exit('{"status":"cuccess","msg":"{$num}抵用券以发放至您的账户,请注意查收。"}'); break; default: $this->echo_json('error','参数错误,所兑换的奖品无效。'); break; } ..... ?> ```