发起付款接口(必用接口)


SDK Demo下载

拇指付支付PHP SDK:codepay-sdk-v1.0.0.zip(utf-8)


跳转支付页接口URL:
https://gateway.mzhipay.cn/Pay
传参方式:POST || GET

说明:用curl的post方式传参数,并直接获取json返回值,引导客户跳转到支付链接。


请求参数:
# 参数名 含义 类型 说明
1 pid 商户APPID int 必填。
2 type 支付类型 string 必填。可选值:alipay,wxpay,qqpay
3 out_trade_no 商户订单号 string 必填。
4 notify_url 服务器异步通知地址 string 必填。
5 return_url 通知回调网址 string 必填。
6 name 商品名称 string 必填。
7 money 订单金额(元) decimal(18,2) 必填。单位为人民币,精确到分
8 sign 签名 string 必填。签名算法与支付宝签名算法相同
9 sign_type 签名类型 String 必填。默认为MD5
SIGN生成的步骤如下:

第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

特别注意以下重要规则:

  1. ◆ 参数名ASCII码从小到大排序(字典序);
  2. ◆ 如果参数的值为空不参与签名;
  3. ◆ 参数名区分大小写;
  4. ◆ 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
  5. ◆ 微信接口可能增加字段,验证签名时必须支持增加的扩展字段

第二步,在stringA最后拼接上APPKEY得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,得到sign值。

SIGN生成示例(PHP):
/**
     * 签名算法
     * @param  array $params     请求参数
     * @param  string $app_key AppKey
     * @return string             签名字符串
     */
    function sign($params, $app_key)
    {
        $para_filter = array();
        while (list ($key, $val) = each ($params)) {
            if($key == "sign" || $key == "sign_type" || $val == "")continue;
            else    $para_filter[$key] = $params[$key];
        }
        ksort($para_filter);
        reset($para_filter);
        $arg  = "";
        while (list ($key, $val) = each ($para_filter)) {
            // 不是数组的时候才会组合,否则传入数组会出错
            if (!is_array($val)) {
                $arg.=$key."=".$val."&";
            }
        }
        //去掉最后一个&字符
        $arg = substr($arg,0,count($arg)-2);
        //如果存在转义字符,那么去掉转义
        if(get_magic_quotes_gpc()){
            $arg = stripslashes($arg);
        }
           //return $arg;
        $string = $arg . $app_key;
        // md5签名
        return strtolower(md5($string));
    }
Json请求成功时返回示例:
将直接302到支付地址,如需返回json请联系
Json请求失败时返回示例:
{
    		"code":500,
    		"errmsg":"invalid sign!",
    		"sign":"3a91e22ee359c914b0788c6007377638"
    		}

付款成功回调通知


用户付款成功后,我们会向您在发起付款接口传入的notify_url网址发送通知。您的服务器只要返回内容:success,就表示回调已收到。如果返回内容不是success,我们会再尝试回调3次。

传参方式:GET 如需POST请联系我们
参数内容:
# 参数名 含义 类型 说明
1 pid 商户APPID int
2 type 支付类型 string
3 out_trade_no 商户订单号 string
4 trade_no 拇指订单号 string
5 trade_status 支付状态 string TRADE_SUCCESS 为支付成功
6 name 商品名称 string 必填。
7 money 订单金额(元) decimal(18,2) 必填。单位为人民币,精确到分
8 sign 签名 string
9 sign_type 签名类型 String

付款成功自动跳转


用户付款成功后,我们会在先通过notify_url接口,通知您服务器付款成功,然后引导用户跳转到return_url网址。