欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

基于php的加油卡充值接口调用代码实例

程序员文章站 2022-03-17 10:45:14
...

// +----------------------------------------------------------------------
  
//----------------------------------
// 加油卡充值调用示例代码 - 聚合数据
// 在线接口文档:http://www.juhe.cn/docs/87
//----------------------------------
  
header('Content-type:text/html;charset=utf-8');
  
  
//配置您申请的appkey
$appkey = "*********************";
  
  
  
  
//************1.订单状态查询************
$url = "http://op.juhe.cn/ofpay/sinopec/ordersta";
$params = array(
      "orderid" => "",//商家订单号,8-32位字母数字组合
      "key" => $appkey,//应用APPKEY(应用详细页查询)
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
    if($result['error_code']=='0'){
        print_r($result);
    }else{
        echo $result['error_code'].":".$result['reason'];
    }
}else{
    echo "请求失败";
}
//**************************************************
  
  
  
  
//************2.账户余额查询************
$url = "http://op.juhe.cn/ofpay/sinopec/yue";
$params = array(
      "timestamp" => "",//当前时间戳,如:1432788379
      "key" => $appkey,//应用APPKEY(应用详细页查询)
      "sign" => "",//校验值,md5(OpenID+key+timestamp),OpenID在个人中心查询
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
    if($result['error_code']=='0'){
        print_r($result);
    }else{
        echo $result['error_code'].":".$result['reason'];
    }
}else{
    echo "请求失败";
}
//**************************************************
  
  
  
  
//************3.加油卡充值************
$url = "http://op.juhe.cn/ofpay/sinopec/onlineorder";
$params = array(
      "proid" => "",//产品id:10000(中石化50元加油卡)、10001(中石化100元加油卡)、10003(中石化500元加油卡)、10004(中石化1000元加油卡)、10007(中石化任意金额充值)、10008(中石油任意金额充值)
      "cardnum" => "",//充值数量 任意充 (整数(元)),其余面值固定值为1
      "orderid" => "",//商家订单号,8-32位字母数字组合
      "game_userid" => "",//加油卡卡号,中石化:以100011开头的卡号、中石油:以9开头的卡号
      "gasCardTel" => "",//持卡人手机号码
      "gasCardName" => "",//持卡人姓名
      "chargeType" => "",//加油卡类型 (1:中石化、2:中石油;默认为1)
      "key" => $appkey,//应用APPKEY(应用详细页查询)
      "sign" => "",//校验值,md5(OpenID+key+proid+cardnum+game_userid+orderid),OpenID在个人中心查询
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
    if($result['error_code']=='0'){
        print_r($result);
    }else{
        echo $result['error_code'].":".$result['reason'];
    }
}else{
    echo "请求失败";
}
//**************************************************
  
  
  
  
  
/**
 * 请求接口返回内容
 * @param  string $url [请求的URL地址]
 * @param  string $params [请求的参数]
 * @param  int $ipost [是否采用POST形式]
 * @return  string
 */
function juhecurl($url,$params=false,$ispost=0){
    $httpInfo = array();
    $ch = curl_init();
  
    curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
    curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
    curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    if( $ispost )
    {
        curl_setopt( $ch , CURLOPT_POST , true );
        curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
        curl_setopt( $ch , CURLOPT_URL , $url );
    }
    else
    {
        if($params){
            curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
        }else{
            curl_setopt( $ch , CURLOPT_URL , $url);
        }
    }
    $response = curl_exec( $ch );
    if ($response === FALSE) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
    $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
    curl_close( $ch );
    return $response;
}