发起支付请求

PHP发起支付请求示例code

  1. $zzcode_id="1000";//这里改成您的商户id
  2. $zzcode_key="AMEQ6D96SADsE545413419MuS"; //这是您的KEY
  3. //构造要请求的参数数组,无需改动
  4. $parameter = array(
  5. "pid" => $zzcode_id,//你的商户ID
  6. "type" => 'alipay',//alipay支付宝支付、wxpay微信支付
  7. "notify_url" => '',//异步通知地址
  8. "return_url" => '',//页面返回地址
  9. "out_trade_no" => '20200530203427207',//订单号
  10. "name" => 'VIP会员',//商品名称
  11. "money" => 1.00,//支付金额
  12. "sitename" => '码支付',//网站名称
  13. );
  14. ksort($parameter); //重新排序$parameter数组
  15. reset($parameter); //内部指针指向数组中的第一个元素
  16. $sign = ''; //初始化需要签名的字符为空
  17. $urls = ''; //初始化URL参数为空
  18. foreach ($parameter AS $key => $val) { //遍历需要传递的参数
  19. if ($val == '' || $key == 'sign' || $key == "sign_type" ) continue; //跳过这些不参数签名
  20. if ($sign != '') { //后面追加&拼接URL
  21. $sign .= "&";
  22. $urls .= "&";
  23. }
  24. $sign .= "$key=$val"; //拼接为url参数形式
  25. $urls .= "$key=" . urlencode($val); //拼接为url参数形式并URL编码参数值
  26. }
  27. $query = $urls . '&sign=' . md5($sign .$zzcode_key); //创建订单所需的参数
  28. $url = "https://pay.vmianqian.com/submit.php?{$query}"; //支付页面
  29. header("Location:{$url}"); //跳转到支付页面

支付结果通知

通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)

请求方式:GET

回调说明:支付成功服务器异步通知页面就会收到码支付发来的处理结果通知,程序执行完后必须打印输出success,如果商户反馈的字符不是success这7个字符,码支付服务器会不断重发通知,直到超过通知次数10次(通知的间隔:5分钟左右)注意做好通知去重逻辑,你也可以在后台手动补单。

参数说明:

字段名变量名必填类型示例值描述
商户IDpidInt1001
订单号trade_noString20160806151343349021系统内部订单号
商户订单号out_trade_noString20160806151343349商户系统内部的订单号
支付方式typeStringalipayalipay:支付宝,wxpay:微信支付
商品名称nameStringVIP会员
商品金额moneyString1.00
支付状态trade_statusStringTRADE_SUCCESS
签名字符串signString202cb962ac59075b964b07152d234b70签名算法与支付宝签名算法相同
签名类型sign_typeStringMD5默认为MD5

PHP支付结果验证示例code

  1. if($_POST){
  2. $data=$_POST;
  3. }else{
  4. $data=$_GET;
  5. }
  6. ksort($data); //排序post参数
  7. reset($data); //内部指针指向数组中的第一个元素
  8. $zzcode_key = "这里改成您的KEY"; //这是您的密钥
  9. $sign = '';//初始化
  10. foreach ($data AS $key => $val) { //遍历POST参数
  11. if ($val == '' || $key == 'sign' || $key == "sign_type" ) continue; //跳过这些不参数签名
  12. if ($sign) $sign .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
  13. $sign .= "$key=$val"; //拼接为url参数形式
  14. }
  15. if (md5($sign.$zzcode_key) != $data['sign']) { //不合法的数据
  16. exit('fail'); //验证失败
  17. } else { //合法的数据
  18. //业务处理
  19. $money = (float)$data['money']; //付款金额
  20. $trade_no = $data['trade_no']; //订单号
  21. $out_trade_no = $data['out_trade_no']; //商户订单号
  22. exit('success'); //返回成功
  23. }