开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3247|回复: 11
收起左侧

[已解决] POST参数格式

 关闭 [复制链接]
结帖率:87% (60/69)
发表于 2018-5-16 16:22:35 | 显示全部楼层 |阅读模式   浙江省嘉兴市
5精币
<?php
/**
* ---------------------参数生成页-------------------------------
* Author:Leo
* Project:PaysApi.com
*
* 在您自己的服务器上生成新订单,并把计算好的订单信息传给您的前端网页。
* 注意:
* 1.key一定要在服务端计算,不要在网页中计算。
* 2.token只能存放在服务端,不可以以任何形式存放在网页代码中(可逆加密也不行),也不可以通过url参数方式传入网页。
* 3.接口跑通后,如果发现收款二维码是我们官方的,请检查APP是否正在运行。为保障您收款功能正常,如果您的收款手机APP掉线超过一分钟,就会触发代收款机制,详情请看网站帮助。
* --------------------------------------------------------------
*/
    //从网页传入price:支付价格, istype:支付渠道:1-zfb;2-微信支付
    $price = $_POST["price"];
    $istype = $_POST["istype"];
   
    $orderuid = "username";       //此处传入您网站用户的用户名,方便在paysapi后台查看是谁付的款,强烈建议加上。可忽略。
    //校验传入的表单,确保价格为正常价格(整数,1位小数,2位小数都可以),支付渠道只能是1或者2,orderuid长度不要超过33个中英文字。
    //此处就在您服务器生成新订单,并把创建的订单号传入到下面的orderid中。
    $goodsname = "请叫我商品名称,不要超过33个中英文字";
    $orderid = "1234567890";    //每次有任何参数变化,订单号就变一个吧。
    $uid = "";//"此处填写PaysApi的uid";
    $token = "";//"此处填写PaysApi的Token";
    $return_url = 'http://www.demo.com/payreturn.php';
    $notify_url = 'http://www.demo.com/paynotify.php';
   
    $key = md5($goodsname. $istype . $notify_url . $orderid . $orderuid . $price . $return_url . $token . $uid);
    //经常遇到有研发问为啥key值返回错误,大多数原因:1.参数的排列顺序不对;2.上面的参数少传了,但是这里的key值又带进去计算了,导致服务端key算出来和你的不一样。
    $returndata['goodsname'] = $goodsname;
    $returndata['istype'] = $istype;
    $returndata['key'] = $key;
    $returndata['notify_url'] = $notify_url;
    $returndata['orderid'] = $orderid;
    $returndata['orderuid'] =$orderuid;
    $returndata['price'] = $price;
    $returndata['return_url'] = $return_url;
    $returndata['uid'] = $uid;
    echo jsonSuccess("OK",$returndata,"");

    //返回错误
    function jsonError($message = '',$url=null)
    {
        $return['msg'] = $message;
        $return['data'] = '';
        $return['code'] = -1;
        $return['url'] = $url;
        return json_encode($return);
    }
    //返回正确
    function jsonSuccess($message = '',$data = '',$url=null)
    {
        $return['msg']  = $message;
        $return['data'] = $data;
        $return['code'] = 1;
        $return['url'] = $url;
        return json_encode($return);
    }
?>



这个是PHP的DEMO,我用易语言POST参数应该是怎么样的格式

最佳答案

查看完整内容

首页 API接入文档 API接入文档 准备工作 发起付款接口 cha询接口 DEMO下载 发起付款接口(必用接口) 有2种方法发起支付:1.获取json支付页信息,自定义支付页;2.跳转到我们支付页 获取支付JSON数据接口URL:(强烈推荐,防止我们域名出问题时影响业务) https://pay.bbbapi.com/?format=json 传参方式:POST 说明:用curl的post方式传参数,并直接获取json返回值,显示在您自定义的支付页上。 跳转支付页接口URL: https://pa ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (4/4)
发表于 2018-5-16 16:22:36 | 显示全部楼层   福建省泉州市

首页 API接入文档
API接入文档

准备工作
发起付款接口
cha询接口
DEMO下载
发起付款接口(必用接口)

有2种方法发起支付:1.获取json支付页信息,自定义支付页;2.跳转到我们支付页

获取支付JSON数据接口URL:(强烈推荐,防止我们域名出问题时影响业务)

https://pay.bbbapi.com/?format=json
传参方式:POST

说明:用curl的post方式传参数,并直接获取json返回值,显示在您自定义的支付页上。

跳转支付页接口URL:

https://pay.bbbapi.com/
传参方式:POST

使用方法:用表单post的方式,post参数并跳转到此网址,显示我们的支付页。

请求参数:

#        参数名        含义        类型        说明
1        uid        商户uid        string(24)        必填。您的商户唯一标识,zc后在设置里获得。一个24位字符串
2        price        价格        float        必填。单位:元。精确小数点后2位
3        istype        支付渠道        int        必填。1:zfb;2:微信支付
4        notify_url        通知回调网址        string(255)        必填。用户支付成功后,我们服务器会主动发送一个post消息到这个网址。由您自定义。不要urlencode。例:http://www.aaa.com/paysapi_notify
5        return_url        跳转网址        string(255)        必填。用户支付成功后,我们会让用户浏览器自动跳转到这个网址。由您自定义。不要urlencode。例:http://www.aaa.com/paysapi_return
6        orderid        商户自定义订单号        string(50)        必填。我们会据此判别是同一笔订单还是新订单。我们回调时,会带上这个参数。例:201710192541
7        orderuid        商户自定义客户号        string(100)        选填。我们会显示在您后台的订单列表中,方便您看到是哪个用户的付款,方便后台对账。强烈建议填写。可以填用户名,也可以填您数据库中的用户uid。例:xxx, xxx@aaa.com
8        goodsname        商品名称        string(100)        选填。您的商品名称,用来显示在后台的订单名称。如未设置,我们会使用后台商品管理中对应的商品名称
9        key        秘钥        string(32)        必填。把使用到的所有参数,连Token一起,按参数名字母升序排序。把参数值拼接在一起。做md5-32位加密,取字符串小写。得到key。网址类型的参数值不要urlencode。
key的拼接顺序:如用到了所有参数,就按这个顺序拼接:goodsname + istype + notify_url + orderid + orderuid + price + return_url + token + uid

注意:Token在安全上非常重要,一定不要显示在任何网页代码、网址参数中。只可以放在服务端。计算key时,先在服务端计算好,把计算出来的key传出来。严禁在客户Duan计算key,严禁在客户Duan存储Token。

JSON请求的返回值:

{
        //提示给用户的文字信息,会根据不同场景,展示不同内容
        "msg":"付款即时到账 未到账可联系我们",
        "data":{
                //二维码信息,如果没返回,说明存在错误,参考msg的信息。
                //想展示二维码内容,可以qrcode值放到这个网址后面:https://pan.baidu.com/share/qrcode?w=280&h=280&url=
                "qrcode":"HTTPS://QR.ALIPAY.COM/FKX08406GFWYYSF0YRNC10",
                //支付渠道:1-zfb;2-微信
                "istype":"1",
                //显示给用户的订单金额(一定要把这个价格显示在支付页上,而不是订单金额)
                "realprice":0.05
        },
        //code目前只返回1。
        "code":1,
        //判断支付成功后,要同步跳转的URL
        "url":"https://www.paysapi.com/"
}
                                                       
付款成功回调通知

用户付款成功后,我们会向您在发起付款接口传入的notify_url网址发送通知。您的服务器只要返回200状态,就表示回调已收到。如果返回状态不是200,我们会再尝试回调3次,每次间隔1分钟。

传参方式:POST

参数内容:

#        参数名        含义        类型        说明
1        paysapi_id        paysapi生成的订单ID号        string(24)        一定存在。一个24位字符串,是此订单在PaysApi服务器上的唯一编号
2        orderid        您的自定义订单号        string(50)        一定存在。是您在发起付款接口传入的您的自定义订单号
3        price        订单定价        float        一定存在。是您在发起付款接口传入的订单价格
4        realprice        实际支付金额        float        一定存在。表示用户实际支付的金额。一般会和price值一致,如果同时存在多个用户支付同一金额,就会和price存在一定差额,差额一般在1-2分钱上下,越多人同时付款,差额越大。
5        orderuid        您的自定义用户ID        string(100)        如果您在发起付款接口带入此参数,我们会原封不动传回。
6        key        秘钥        string(32)        一定存在。我们把使用到的所有参数,连您的Token一起,按参数名字母升序排序。把参数值拼接在一起。做md5-32位加密,取字符串小写。得到key。您需要在您的服务端按照同样的算法,自己验证此key是否正确。只在正确时,执行您自己逻辑中支付成功代码。
key的拼接顺序:如用到了所有参数,就按这个顺序拼接:orderid + orderuid + paysapi_id + price + realprice + token

补充内容 (2018-5-17 16:42):
详细见12L:https://bbs.125.la/forum.php?mod=redirect&goto=findpost&ptid=14167746&pid=13166218

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (4/4)

签到天数: 28 天

发表于 2018-5-16 16:28:06 | 显示全部楼层   上海市上海市
直接post两个参数 一个是 price 一个是 istype
提交链接是你php所在的文件路径
回复

使用道具 举报

结帖率:87% (60/69)
 楼主| 发表于 2018-5-16 16:30:11 | 显示全部楼层   浙江省嘉兴市
壹抹男人味 发表于 2018-5-16 16:28
直接post两个参数 一个是 price 一个是 istype
提交链接是你php所在的文件路径

我是在易语言中POST,你能帮我一下吗?
回复

使用道具 举报

结帖率:100% (4/4)
发表于 2018-5-16 16:30:34 | 显示全部楼层   福建省泉州市
1        uid        商户uid        string(24)        必填。您的商户唯一标识,zc后在设置里获得。一个24位字符串
2        price        价格        float        必填。单位:元。精确小数点后2位
3        istype        支付渠道        int        必填。1:zfb;2:微信支付
4        notify_url        通知回调网址        string(255)        必填。用户支付成功后,我们服务器会主动发送一个post消息到这个网址。由您自定义。不要urlencode。例:http://www.aaa.com/paysapi_notify
5        return_url        跳转网址        string(255)        必填。用户支付成功后,我们会让用户浏览器自动跳转到这个网址。由您自定义。不要urlencode。例:http://www.aaa.com/paysapi_return
6        orderid        商户自定义订单号        string(50)        必填。我们会据此判别是同一笔订单还是新订单。我们回调时,会带上这个参数。例:201710192541
7        orderuid        商户自定义客户号        string(100)        选填。我们会显示在您后台的订单列表中,方便您看到是哪个用户的付款,方便后台对账。强烈建议填写。可以填用户名,也可以填您数据库中的用户uid。例:xxx, xxx@aaa.com
8        goodsname        商品名称        string(100)        选填。您的商品名称,用来显示在后台的订单名称。如未设置,我们会使用后台商品管理中对应的商品名称
9        key        秘钥        string(32)        必填。把使用到的所有参数,连Token一起,按参数名字母升序排序。把参数值拼接在一起。做md5-32位加密,取字符串小写。得到key。网址类型的参数值不要urlencode。
key的拼接顺序:如用到了所有参数,就按这个顺序拼接:goodsname + istype + notify_url + orderid + orderuid + price + return_url + token + uid
回复

使用道具 举报

结帖率:87% (60/69)
 楼主| 发表于 2018-5-16 16:32:00 | 显示全部楼层   浙江省嘉兴市
杜子鳄 发表于 2018-5-16 16:30
1        uid        商户uid        string(24)        必填。您的商户唯一标识,zc后在设置里获得。一个24位字符串
2        price        价格        floa ...

这个说明我看到了,但是我不知道怎么写,你能帮我一下吗?
回复

使用道具 举报

结帖率:100% (4/4)
发表于 2018-5-16 16:33:28 | 显示全部楼层   福建省泉州市
这么详细的文档说明还看不明白,还有救吗?
回复

使用道具 举报

结帖率:100% (4/4)
发表于 2018-5-16 16:35:22 | 显示全部楼层   福建省泉州市
关键就是参数是否编码、升序和拼接不要弄错了~不然和key令牌对不上的~

补充内容 (2018-5-16 16:40):
不过用易语言做的话,key会泄露哦。

补充内容 (2018-5-16 16:46):
人家严禁在客户Duan计算key和储存token~~要在服务器上计算~~你非要用易语言post接口,不怕泄露吗~
回复

使用道具 举报

结帖率:87% (60/69)
 楼主| 发表于 2018-5-16 16:45:50 | 显示全部楼层   浙江省嘉兴市
杜子鳄 发表于 2018-5-16 16:35
关键就是参数是否编码、升序和拼接不要弄错了~不然和key令牌对不上的~

补充内容 (2018-5-16 16:4 ...

大哥,这些我都懂,可能我没有表达清楚,我不知道如何表单POST,用网页_访问这个命令吗?然后参数怎么填,是“uid=ea171f81b5cdba6c4a2959fe&price=99&istype=2” 这样的格式吗?
回复

使用道具 举报

结帖率:87% (60/69)
 楼主| 发表于 2018-5-16 16:47:27 | 显示全部楼层   浙江省嘉兴市
杜子鳄 发表于 2018-5-16 16:35
关键就是参数是否编码、升序和拼接不要弄错了~不然和key令牌对不上的~

补充内容 (2018-5-16 16:4 ...

我易语言作为服务端,计算好KEY之后再发出来啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表