외부쇼핑몰에서 포인트를 전송받는 페이지
본문
A라는 외부쇼핑몰에서 제가 만든 B라는 그누보드 사이트에 포인트를 전송하는 기능을 준비하고 있는데요,
저희 B사이트에 회원정보 확인 및 포인트를 받을 수 있는 페이지를 준비해서 URL을 달라고합니다. 어떤식으로 준비해서 제공하면 되는거죠?
A사이트에서 POST 방식으로 회원아이디와 포인트값을 보내면 B사이트에서 그것을 확인하고 해당 회원에게 포인트를 넣어주면 되는 흐름 같은데 어떻게하면 되는지 좀 막연합니다. 이런식의 API 제공예시가 있을까요
답변 3
받아서 처리할 파일을 만드셔서 드리면 됩니다. 변수명도 지정해서요
저희 게시판 글쓰기 하면 write_update.php 로 넘어가잖아요 action이
그런 의미라고 보시면 됩니다.
예를들어 post_update.php를 만들고
$point = isset($_POST['point']) ? $_POST['point'] : '';
이런식의 데이터를 받아다가
db에 저장을 하시는 작업을 할 페이지 url을 달라고 하는겁니다~
간단하게는 다음처럼 구성하는 방법이 있습니다.
<?php
/**
*
* file : ${DOCUMENT_ROOT}/api/member/index.php
* uri : yourdomain.tld/api/member/
* params-get : mb_id
* params-post : mb_id, mb_point
*/
$doc_root = dirname(dirname(__DIR__));
require $doc_root . DIRECTORY_SEPARATOR . 'common.php';
header('Content-Type: application/json; charset=utf-8');
$req_method = $_SERVER['REQUEST_METHOD'];
$err = null;
$res = [];
if ($req_method == 'GET') {
$mb_id = isset($_GET['mb_id']) == true ? sql_escape_string($_GET['mb_id']) : null;
if (empty($mb_id) == false) {
$res = get_member($mb_id, 'mb_id, mb_name, mb_level, mb_point');
}
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;
$mbinfo = get_member($mb_id);
if (empty($mbinfo['mb_id']) == false) {
$result = insert_point($mb_id, $mb_point, 'from external shop');
}
if ($result == 1) {
$res = ['code' => 0, 'message' => 'SUCCESS'];
} else {
$err = true;
}
}
if ($err == true) {
$res = ['code' => 456, 'message' => 'FAILURE'];
}
echo json_encode($res);
?>
전달되는 회원 아이디, 포인트에 대한 상세 설명이 없으니 변수명을 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');
http://도메인/shop_point.php 전달
변수명은 mb_id, mb_point 로 해달라고 전달