退款接口


对已经支付的订单发起退款,请求方式为POST

请求地址:https://payjs.cn/api/refund

请求参数:

字段名称 字段类型 必填参数 说明
payjs_order_id string(32) Y PAYJS 平台订单号
sign string(32) Y 数据签名 详见签名算法

请求返回:

字段名称 字段类型 必填参数 说明
return_code int Y 1:退款成功 0:退款失败
return_msg string(32) Y 返回消息
payjs_order_id string(32) N PAYJS 平台订单号
out_trade_no string(32) N 用户侧订单号
transaction_id string(32) N 微信支付订单号
sign string(32) Y 数据签名 详见签名算法

提示:成功退款的条件是,未结算款大于退款金额


退款接口演示代码:

https://gist.github.com/payjscn/8759b682fbbca89cb395f4fb8fe8d9d1

<?php
class Payjs {

    private $url   = 'https://payjs.cn/api/refund';
    private $mchid = '';          // 特写商户号
    private $key   = '';            // 填写通信密钥

    public function __construct($payjs_order_id=null) {
        $this->payjs_order_id = $payjs_order_id;
    }

    public function refund(){
        $data = array();
        $data['payjs_order_id'] = $this->payjs_order_id;
        $data['sign'] = $this->sign($data);
        return $this->post($data, $this->url);
    }

    public function post($data, $url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        $rst = curl_exec($ch);
        curl_close($ch);
        return $rst;
    }

    public function sign(array $attributes) {
        ksort($attributes);
        $sign = strtoupper(md5(urldecode(http_build_query($attributes)) . '&key=' . $this->key));
        return $sign;
    }
}

$payjs_order_id = '2019***********';              // 订单号

$payjs = new Payjs($payjs_order_id);
$rst = $payjs->refund();

print_r($rst);
?>
powered by Gitbook最后更新: 2019-08-23