API开发文档简介
本文阅读对象:使用武汉微实云科技有限公司旗下微实云支付商户自服务系统的技术架构师、研发工程师、系统运维工程师。通过本文档,商户可了解微实云支付接入的技术、接入的产品业务、接入的流程、接入规范等信息,以便于商户顺利完成接入工作。
微实云支付接口API地址是:https://pay.wessyun.com
API发起支付请求
URL地址:https://pay.wessyun.com/Pay_Index.html
请求参数说明
字段名 | 变量名 | 必填 | 参与签名 | 描述 |
商户号 | pay_memberid | 是 | 是 | 平台分配商户号 |
订单号 | pay_orderid | 是 | 是 | 上送订单号唯一, 字符长度20 |
提交时间 | pay_applydate | 是 | 是 | 时间格式:2016-12-26 18:18:18 |
银行编码 | pay_bankcode | 是 | 是 | 参考银行编码对照 |
服务端通知 | pay_notifyurl | 是 | 是 | 服务端返回地址.(POST返回数据) |
页面跳转通知 | pay_callbackurl | 是 | 是 | 页面跳转返回地址(POST返回数据) |
订单金额 | pay_amount | 是 | 是 | 商品金额 |
MD5签名 | pay_md5sign | 是 | 否 | 参考API签名算法 |
附加字段 | pay_attach | 否 | 否 | 此字段在返回时按原样返回 (中文需要url编码) |
商品名称 | pay_productname | 是 | 否 | |
商户品数量 | pay_productnum | 否 | 否 | |
商品描述 | pay_productdesc | 否 | 否 | |
商户链接地址 | pay_producturl | 否 | 否 | |
银行编码对照
银行编码 | 银行名称 | 支持端口 |
940 | 支付宝扫码支付 | PC浏览器/手机WAP浏览器/支付宝APP |
941 | 支付宝H5 | 手机WAP浏览器/支付宝 |
942 | 微信扫码支付 | PC浏览器/手机WAP浏览器/微信APP |
946 | 微信JSAPI | 微信APP |
API支付结果通知
如果接收到服务器点对点通讯时,在页面输出“OK”(没有双引号,OK两个字母大写),否则会重复3次发送点对点通知.
通知参数说明
字段名 | 变量名 | 参与签名 | 参数说明 |
商户编号 | memberid | 是 | |
订单号 | orderid | 是 | |
订单金额 | amount | 是 | |
交易流水号 | transaction_id | 是 | |
交易时间 | datetime | 是 | |
交易状态 | returncode | 是 | “00” 为成功 |
扩展返回 | attach | 否 | 商户附加数据返回 |
签名 | sign | 否 | 参考API签名算法验证签名 |
API查询结算记录
URL地址:https://pay.wessyun.com/Pay_Trade_query.html
请求参数说明:
字段名 | 变量名 | 必填 | 参与签名 | 描述 |
商户号 | pay_memberid | 是 | 是 | 平台分配商户号 |
订单号 | pay_orderid | 是 | 是 | 上送订单号唯一, 字符长度20 |
签名 | pay_md5sign | 是 | 否 | 参考API签名算法 |
返回结果:
字段名 | 变量名 | 参与签名 | 描述 |
商户编号 | memberid | 是 | |
订单号 | orderid | 是 | |
订单金额 | amount | 是 | |
支付成功时间 | time_end | 是 | |
交易流水号 | transaction_id | 是 | |
交易状态 | returncode | 是 | “00” 为成功 |
交易状态 | trade_state | 是 | NOTPAY-未支付 SUCCESS已支付 |
签名 | sign | 否 | 参考API签名算法验证签名 |
API发起代付请求
URL地址:https://pay.wessyun.com/Payment_Dfpay_add.html
请求参数说明:
字段名 | 变量名 | 必填 | 参与签名 | 描述 |
商户号 | mchid | 是 | 是 | 平台分配商户号 |
订单号 | out_trade_no | 是 | 是 | 保证唯一值 |
金额 | money | 是 | 是 | 单位:元 |
开户行名称 | bankname | 是 | 是 | 代付到银行卡传入银行中文简称
代付到支付宝传入“支付宝”
代付到微信传入“微信支付”
手机话费慢充传入“手机充值”
手机话费快充传入“手机快充” |
支行名称 | subbranch | 否 | 是 | |
开户名 | accountname | 是 | 是 | 代付到支付宝传入收款人姓名
代付到微信传入收款人姓名
手机话费充值传入充值手机号码 |
银行卡号 | cardnumber | 是 | 是 | 代付到支付宝传入收款人支付宝账号
代付到微信传入收款人微信openid,获取方式参考后文
手机话费充值传入充值手机号码 |
省份 | province | 否 | 是 | |
城市 | city | 否 | 是 | |
附加字段 | extends | 否 | 是 | 格式:数组,如果不需要扩展字段不传 |
签名 | pay_md5sign | 否 | 否 | 参考API签名算法 |
返回结果:
字段名 | 变量名 | 描述 |
状态 | status | 成功:success 失败:error |
状态描述 | msg | |
平台流水号 | transaction_id | 成功时返回 |
API查询代付订单
URL地址:https://pay.wessyun.com/Payment_Dfpay_query.html
请求参数说明:
字段名 | 变量名 | 必填 | 参与签名 | 参数说明 |
商户订单号 | out_trade_no | 是 | 是 | |
商户号 | mchid | 是 | 是 | |
签名 | pay_md5sign | 是 | 是 | 参考API签名算法 |
返回结果:
字段名 | 变量名 | 参与签名 | 参数说明 |
状态 | status | 是 | success:请求成功(不代表业务成功),error:请求失败 |
状态描述 | msg | 是 | |
商户号 | mchid | 是 | status=success时返回 |
商户订单号 | out_trade_no | 是 | status=success时返回 |
金额 | amount | 是 | status=success时返回 |
平台流水号 | transaction_id | 是 | status=success时返回 |
业务状态 | refCode | 是 | status=success时返回 |
业务描述 | refMsg | 是 | status=success时返回 |
成功时间 | success_time | 是 | status=success,refCode=1时返回 |
签名 | pay_md5sign | 否 | 参考API签名算法验证签名 |
refCode返回值:
注:当status=success和refCode=1同时成立时才表示转账成功
返回值 | 业务含义 |
1 | 成功 |
2 | 失败 |
3 | 处理中 |
4 | 待处理 |
5 | 审核驳回 |
6 | 待审核 |
7 | 交易不存在 |
8 | 未知状态 |
API签名算法说明
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串(注:如果存在extends字段且不为空,需要先转化为JSON格式,接着进行Base64加密,最后按上述规则拼接字符串)。
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
参考代码:
stringSignTemp=strtoupper(md5("accountname=accountname&bankname=bankname&cardnumber=cardnumber&city=city&extends=base64_encode(json_encode(extends))=&mchid=mchid&money=money&out_trade_no=out_trade_no&province=province&subbranch=subbranch&key=key"))