외부쇼핑몰에서 포인트를 전송받는 페이지
A라는 외부쇼핑몰에서 제가 만든 B라는 그누보드 사이트에 포인트를 전송하는 기능을 준비하고 있는데요,
저희 B사이트에 회원정보 확인 및 포인트를 받을 수 있는 페이지를 준비해서 URL을 달라고합니다. 어떤식으로 준비해서 제공하면 되는거죠?
A사이트에서 POST 방식으로 회원아이디와 포인트값을 보내면 B사이트에서 그것을 확인하고 해당 회원에게 포인트를 넣어주면 되는 흐름 같은데 어떻게하면 되는지 좀 막연합니다. 이런식의 API 제공예시가 있을까요
답변 3개
전달되는 회원 아이디, 포인트에 대한 상세 설명이 없으니 변수명을 mb_id, mb_point로 함
1. root에 shop_point.php 화일 생성
2. 내용
<?php
include_once("_common.php");
$member_table= $g5['member_table'];
if( !isset($mb_id) || !isset($mb_point) || $mb_point<0 ) die('error');
$row= sql_fetch("select mb_id from $member_table where mb_id='$mb_id' ");
if(!$row['mb_id']) die('error');
insert_point($mb_id, $mb_point, "shop point", G5_TIME_YMDHIS, '외부shop');
die('OK');
변수명은 mb_id, mb_point 로 해달라고 전달
댓글을 작성하려면 로그인이 필요합니다.
간단하게는 다음처럼 구성하는 방법이 있습니다.
</p>
<p><?php</p>
<p>/**</p>
<p> *</p>
<p> * file : ${DOCUMENT_ROOT}/api/member/index.php</p>
<p> * uri : yourdomain.tld/api/member/</p>
<p> * params-get : mb_id</p>
<p> * params-post : mb_id, mb_point</p>
<p> */</p>
<p> </p>
<p>$doc_root = dirname(dirname(__DIR__));
require $doc_root . DIRECTORY_SEPARATOR . 'common.php';</p>
<p> </p>
<p>header('Content-Type: application/json; charset=utf-8');</p>
<p> </p>
<p>$req_method = $_SERVER['REQUEST_METHOD'];
$err = null;
$res = [];</p>
<p> </p>
<p>if ($req_method == 'GET') {
$mb_id = isset($_GET['mb_id']) == true ? sql_escape_string($_GET['mb_id']) : null;</p>
<p>
if (empty($mb_id) == false) {
$res = get_member($mb_id, 'mb_id, mb_name, mb_level, mb_point');
}</p>
<p> </p>
<p> if (empty($res['mb_id']) == true) {
$err = true;
}
} else if ($req_method == 'POST') {
$mb_id = isset($_POST['mb_id']) == true ? sql_escape_string($_POST['mb_id']) : null;
$mb_point = isset($_POST['mb_point']) == true ? (int)$_POST['mb_point'] : 0;
$result = 0;</p>
<p> </p>
<p> $mbinfo = get_member($mb_id);</p>
<p>
if (empty($mbinfo['mb_id']) == false) {
$result = insert_point($mb_id, $mb_point, 'from external shop');
}</p>
<p> </p>
<p> if ($result == 1) {
$res = ['code' => 0, 'message' => 'SUCCESS'];
} else {
$err = true;
}
}</p>
<p> </p>
<p>if ($err == true) {
$res = ['code' => 456, 'message' => 'FAILURE'];
}
echo json_encode($res);
?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인