- 翻译公司资讯
-
世联翻译公司完成电子系统“财付通”开发指南中文翻译
发布时间:2019-08-20 10:41 点击:
世联翻译公司完成电子系统“财付通”开发指南中文翻译
1 引言1.1 文档概述本文件描述财付通针对手机支付行业提供的支付解决方案。供内部相关开发和技术支持人员与商户平台服务方技术人员使用。文档分别从交互模式、签名、接口、注意事项等方面详细介绍了财付通的工作方式和开发过程,可以帮助开发人员快速入门并掌握开发技能,同时也可以作为日后接口参数以及参数类型的速查手册。1.2 阅读对象供财付通开发人员与商户平台服务方技术或业务人员参考和查询。1.3 业务术语术语 示例 说明商户号 1900000109 机票平台的账号,只用于记账,由财付通自动分配的10位数字密钥 9ba2380ad9b2aacb96bca514eda27ac9 为保证通讯不被篡改,财付通与商户之间约定的32位字符串,算签名sign时使用账户 jpgyf@qq.com财付通账户号,目前支持两种格式:qq号码和email账户金额 100000 金额,默认为RMB,以分为单位。1000表示RMB10.002 方案概述2.1 行业背景在电子商务中,商家、买家、中间服务方是交易活动中的三个环节。买家选购商品下发订单,商家确认订单,买家通过中间服务方向商家支付货款,商家发货履行订单。在这个过程中商家的网站需要集成中间服务方的支付功能,让买家完成货款的支付。财付通作为一家专业的中间服务方除了提供支付接口外,还提供了支付结果查询接口和订单查询接口等,帮助商家记录货款的往来,让商家能把更多的精力集中到商品服务上。商户的货款会按照合同约定以T0~T7的频率结算到商户的银行账户,同时收取手续费。这个过程由财付通自动完成,商户无需做相关开发工作。2.2 接口介绍接口名 请求URL 功能说明 结果说明初始化接口 https://wap.tenpay.com/cgi-bin/wappayv2.0/wappay_init.cgi 调用该接口时指定支付参数,完成买家账户向商家账户的支付,采用页面跳转交互模式和后台通知交互模式 初始化wap请求,通过生成token_id来进行交互验证。支付接口 https://wap.tenpay.com/cgi-bin/wappayv2.0/wappay_gate.cgi调用该接口时指定支付参数,完成买家账户向商家账户的支付,采用页面跳转交互模式和后台通知交互模式 结果分两路返回:一路为前台在callback_url后添加参数返回,表现为页面跳转;一路为后台在notify_url后添加参数返回,要求后台notify_url收到通知后进行响应。订单查询接口 http://wap.tenpay.com/cgi-bin/wapmainv2.0/wm_query_order.cgi 商户在后台对任意一笔订单发起查询,采用后台系统调用交互模式 根据订单号以XML格式返回具体的订单内容和状态2.3 业务实现流程其中蓝色直线箭头表示系统调用,黑色直线箭头表示页面跳转。1) 商户请求交易初始化:商户根据客户的支付行为生成订单,包括商户号、商户订单号、金额、等支付要素。并提交请求进行交易初始化和获取token_id。2) 财付通接收到商户的交易初始化请求后,系统创建财付通交易单,同时生成token_id,并返回该token_id。3) 商户请求WAP支付:商户根据token_id生成WAP支付请求,通过页面跳转方式引导用户进入到财付通手机支付中心。4) 用户在财付通手机支付中心完成支付后,财付通调用notify_url通知商户交易结果。5) 商户返回通知结果:根据扣款成功通知,做发货等逻辑处理,并返回财付通处理结果。财付通确认交易完成并回跳至商户的callback_url。2.4 页面回跳callback_urlcallback_url应为WAP页面,给买家展示支付结果。2.5 结果通知notify_urlnotify_url接收财付通从后台发出的支付结果通知。在此通知接口模式中,商户需要确保notify_url稳定可靠。该notify_url完成接收财付通发送的支付结果信息,交易结果信息将以GET方式传递至商户。财付通只将支付成功的订单进行返回。3 数据格式3.1 GET或POST采用HTTP标准的GET或POST协议,为了保证接收方接收数据正确,传递的参数如果存在特殊字符(如&、=等)需要进行URL Encode。GET或POST一般用于页面跳转交互模式的请求和通知、后台系统调用模式的请求、后台通知模式的请求。3.2 XML数据格式采用标准XML协议,所有参数只存在一级节点中,不采用多级节点嵌套。<?xml version="1.0" encoding="gb2312" ?><root><retcode>0</retcode><retmsg></retmsg><partner>1900000109</partner><status>0</status><sign>8DB4A013A8B515349C307F1E448CE836</sign></root>一般有返回码retcode参数,0表示调用成功;非0表示调用失败,失败时结果不签名,只有retcode和返回信息retmsg。XML一般用于后台系统调用模式的应答。3.3 字符串格式直接以简单字符串作为数据内容,一般用于后台通知模式的接口反馈,表示处理是否成功。返回结果 结果说明success 处理成功,财付通系统收到此结果后不再进行后续通知fail或其他字符 处理不成功,财付通收到此结果或者没有收到任何结果,系统通过补单机制(详见第6节)再次通知4 数字签名为了保证数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进行签名校验。数字签名有两个步骤,先按一定规则拼接要签名的原始串,再选择具体的算法和密钥计算出签名结果。一般失败的结果不签名。4.1 签名原始串无论是请求还是应答,无论是用get、post还是xml,签名原始串按以下方式组装成字符串:1、除sign字段外,所有参数按照字段名的ascii码从小到大排序后使用QueryString的格式(即key1=value1&key2=value2…)拼接而成,空值不传递,不参与签名组串。2、所有参数是指通信过程中实际出现的所有非空参数,即使是接口中无描述的字段,也需要参与签名组串。如退款接口中无test字段,如果商户请求时或财付通应答时,test有值,test字段也得参与参与签名组串3、签名原始串中,字段名和字段值都采用原始值,不进行URL Encode。4、财付通返回的应答或通知消息可能会由于升级增加参数,请验证应答签名时注意允许这种情况。举例:调用某个接口,接口有如下字段:partner、total_fee、desc、attach实际调用接口时,各字段的值:partner=1900000109,total_fee=1,desc=a&b,attach=,test=1正确的签名原始串是:desc=a&b&partner=1900000109&test=1&total_fee=1常见的错误有:desc=a%26b&partner=1900000109&test=1&total_fee=1desc=a&b&partner=1900000109&total_fee=1attach=&desc=a&b&partner=1900000109&test=1&total_fee=1partner=1900000109&total_fee=1&desc=a&b&test=1注意:Wap支付接口中的返回结果参数列表(6.2.4)比较特殊,第2点不适合,即所有参数指的是文档中描述该接口的参数。4.2 签名算法目前暂只支持MD5签名MD5签名MD5 是一种摘要生成算法,通过在签名原始串后加上商户通信密钥的内容,进行MD5运算,形成的摘要字符串即为签名结果。为了方便比较,签名结果统一转换为大写字符。注意:签名时将字符串转化成字节流时指定的字符集input_charset一致。MD5签名计算公式:sign = Md5(原字符串&key=商户密钥). toUpperCase如:签名原始串是:input_charset=GBK&partner=1900000109&total_fee=1商户密钥是:8db4a013a8b515349c307f1e448ce836签名的结果为:sign=md5(input_charset=GBK&partner=1900000109&total_fee=1&key=8934e7d15453e97507ef794cf7b0519d)= 8DB4A013A8B515349C307F1E448CE8365 补单机制对后台通知交互模式,如果财付通收到商户的应答不是success或超时,财付通认为通知失败,财付通会通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但财付通不保证通知最终能成功。由于存在重新发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。财付通推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回success。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。6 接口6.1 初始化请求接口6.1.1 业务功能初始化wap请求,通过生成token_id来进行交互验证。6.1.2 交互模式请求:页面跳转交互模式返回结果+通知:页面跳转交互模式+后台通知交互模式6.1.3 请求参数列表请求url:https://wap.tenpay.com/cgi-bin/wappayv2.0/wappay_init.cgi通过get或post请求字段名 变量名 必填 类型 说明业务参数版本号 ver 是 String(8) 版本号,ver默认值是1.0,目前版本ver取值应为2.0字符集 charset 是 String(8) 1 UTF-8, 2 GB2312, 默认为1银行类型 bank_type 是 String(16) 银行类型:财付通支付填0商品描述 desc 是 String(255) 商品描述,32个字符以内买方财付通账号 purchaser_id 否 String(20) 用户(买方)的财付通帐户(QQ )。若商户没有传该参数,则在财付通支付页面,买家需要输入其财付通帐户。商户号 bargainor_id 是 String(10) 商户号,由财付通统一分配的10位正整数(120XXXXXXX)号商户订单号 sp_billno 是 String(32) 商户系统内部的定单号,32个字符内、可包含字母总金额 total_fee 是 Int 总金额,以分为单位,不允许包含任何字、符号币种 fee_type 是 Int 现金支付币种,目前只支持人民币,默认值是1:人民币通知地址 notify_url 是 String(255) 接收财付通通知的URL,需给绝对路径,255字符内格式如:http://wap.tenpay.com/tenpay.asp前台地址 callback_url 是 String(255) 交易完成后跳转的URL,需给绝对路径,255字符内格式如:http://wap.tenpay.com/tenpay.asp附加信息 attach 否 String(255) 商户附加信息,可做扩展参数,255字符内订单生成时间 time_start 否 String(14) 订单生成时间,格式为yyyymmddhhmmss,如2009年12月25日9点10分10秒表示为20091225091010。时区为GMT+8 beijing。该时间取自商户服务器订单超时时间 time_expire 否 String(14) 订单失效时间,格式为yyyymmddhhmmss,如2009年12月27日9点10分10秒表示为20091227091010。时区为GMT+8 beijing。该时间取自商户服务器签名 sign 是 String(32) MD5签名结果,详见“第4章 MD5签名规则”6.1.4 返回结果和通知参数列表数据按XML的格式实时返回字段名 变量名 必填 类型 说明业务参数动态口令 token_id 是 String(64) 财付通生成的token_id。成功示例:<?xml version="1.0" encoding="GB2312" ?><root><token_id>20081113f9d49c20e8e5c8e40b6107ec42259e41</token_id></root>出错示例:<?xml version="1.0" encoding="GB2312" ?><root><err_info>错误信息</err_info></root>6.2 Wap支付接口6.2.1 业务功能用户通过Wap支付接口完成订单支付。6.2.2 交互模式请求:页面跳转交互模式返回结果:页面跳转交互模式通知:后台通知交互模式6.2.3 请求参数列表请求url:https://wap.tenpay.com/cgi-bin/wappayv2.0/wappay_gate.cgi通过get或post请求字段名 变量名 必填 类型 说明业务参数动态口令 token_id 是 String(64) 财付通生成的token_id。6.2.4 返回结果参数列表页面返回通过请求中的callback_url进行,采用get或post字段名 变量名 必填 类型 说明业务参数返回状态码 ver 是 String(8) 版本号,ver默认值是1.0。目前版本ver取值应为2.0字符集 charset 是 String(8) 字符编码,取值:GBK、UTF-8,默认:GBK。支付结果 pay_result 是 Int 支付结果:0—成功;其它—失败财付通订单号 transaction_id 是 String(28) 财付通交易号,28位长的数值,其中前10位为商户号,之后8位为订单产生的日期,如20090415,最后10位是流水号。商户订单号 sp_billno 是 String(32) 商户系统内部的定单号,32个字符内、可包含字母总金额 total_fee 是 Int 总金额,以分为单位,不允许包含任何字、符号币种 fee_type 是 Int 现金支付币种,1-人民币商户号 bargainor_id 是 String(10) 卖方账号(商户spid)附加信息 attach 否 String(255) 商家数据包,原样返回签名 sign 是 String(32) MD5签名结果只对通知返回的协议参数进行签名。6.2.5 通知结果参数列表后台通知通过请求中的notify_url进行,采用get或post字段名 变量名 必填 类型 说明业务参数版本号 ver 是 String(8) 版本号,ver默认值是1.0。目前版本ver取值应为2.0字符集 charset 是 String(8) 字符编码,取值:GB2312、UTF-8,默认:GB2312。支付结果 pay_result 是 Int 支付结果:0—成功;其它—失败支付结果信息 pay_info 否 String(64) 支付结果信息,支付成功时为空财付通订单号 transaction_id 是 String(28) 财付通交易号,28位长的数值,其中前10位为商户号,之后8位为订单产生的日期,如20090415,最后10位是流水号。商户订单号 sp_billno 是 String(32) 商户系统内部的定单号,32个字符内、可包含字母总金额 total_fee 是 Int 总金额,以分为单位,不允许包含任何字、符号币种 fee_type 是 Int 现金支付币种,1-人民币商户号 bargainor_id 是 String(10) 卖方账号(商户spid)附加信息 attach 否 String(255) 商家数据包,原样返回签名 sign 是 String(32) MD5签名结果付款银行 bank_type 是 String(16) 银行类型银行订单号 bank_billno 否 String(32) 银行订单号,若为财付通余额支付则为空支付完成时间 time_end 是 String(14) 支付完成时间,格式为yyyyMMddhhmmss,如2009年12月27日9点10分10秒表示为20091227091010。时区为GMT+8 beijing。该时间取自财付通服务器买家别名 purchase_alias 否 String(64) 对应买家账号的一个加密串6.2.6 后台通知结果反馈财付通后台通过notify_url通知商户,商户做业务处理后,需要以字符串的形式反馈处理结果,内容如下:返回结果 结果说明success 处理成功,财付通系统收到此结果后不再进行后续通知fail或其它字符 处理不成功,财付通收到此结果或者没有收到任何结果,系统通过补单机制(详见第5节)再次通知6.3 订单查询接口6.3.1 业务功能根据商户订单号或者财付通订单号查询财付通侧记录的具体订单信息。6.3.2 交互模式后台系统调用交互模式6.3.3 请求参数列表请求url:http://wap.tenpay.com/cgi-bin/wapmainv2.0/wm_query_order.cgi通过get或post请求字段名 变量名 必填 类型 说明业务参数版本号 ver 是 String(8) 版本号,ver默认值是1.0。目前版本ver取值应为2.0商户号 bargainor_id 是 String(10) 卖方账号(商户spid)商户订单号 sp_billno 否 String(32) 商户系统内部的订单号, sp_billno和transaction_id至少一个必填,同时存在时transaction_id优先财付通订单号 transaction_id 否 String(28) 财付通交易号, sp_billno和transaction_id至少一个必填,同时存在时transaction_id优先。附加信息 attach 否 String(255) 商家数据包,原样返回字符集 charset 是 String(8) 字符编码,取值:GB2312、UTF-8,默认:GB2312。签名 sign 是 String(32) MD5签名结果6.3.4 应答参数列表数据按XML的格式实时返回字段名 变量名 必填 类型 说明业务参数版本号 ver 是 String(8) 版本号,ver默认值是1.0。目前版本ver取值应为2.0字符集 charset 是 String(8) 字符编码,取值:GB2312、UTF-8,默认:GB2312。支付结果 pay_result 是 Int 支付结果:0—成功;其它—失败支付结果信息 pay_info 否 String(64) 支付结果信息,支付成功时为空财付通订单号 transaction_id 是 String(28) 财付通交易号,28位长的数值,其中前10位为商户号,之后8位为订单产生的日期,如20090415,最后10位是流水号。商户订单号 sp_billno 是 String(32) 商户系统内部的定单号,32个字符内、可包含字母总金额 total_fee 是 Int 总金额,以分为单位,不允许包含任何字、符号币种 fee_type 是 Int 现金支付币种,1-人民币商户号 bargainor_id 是 String(10) 卖方账号(商户spid)附加信息 attach 否 String(255) 商家数据包,原样返回签名 sign 是 String(32) MD5签名结果付款银行 bank_type 是 String(16) 银行类型银行订单号 bank_billno 否 String(32) 银行订单号,若为财付通余额支付则为空支付完成时间 time_end 是 String(14) 支付完成时间,格式为yyyyMMddhhmmss,如2009年12月27日9点10分10秒表示为20091227091010。时区为GMT+8 beijing。该时间取自财付通服务器买家别名 purchase_alias 否 String(64) 对应买家账号的一个加密串7 注意事项1、 所有涉及到金额的单位都是分,最小的单位是1分,不能有小数出现2、 notify_url是财付通服务器从后台直接发起请求到商户服务器,商户处理时不能检查用户的cookie或session;商户更新DB等发货流程需要完整在notify_url完成,以确保掉单时,财付通补单能成功补上3、 notify_url有可能重复通知,商户需要做去重处理,避免多次发货4、 notify_url收到的通知,商户处理成功或检查订单已经处理,需要返回处理成功的标志“success”,以告知财付通不再通知5、 notify_id的有效期是2分钟,请商户收到通知后尽快发起查询Unitrans世联翻译公司在您身边,离您近的翻译公司,心贴心的专业服务,专业的全球语言翻译与信息解决方案供应商,专业翻译机构品牌。无论在本地,国内还是海外,我们的专业、星级体贴服务,为您的事业加速!世联翻译公司在北京、上海、深圳等国际交往城市设有翻译基地,业务覆盖全国城市。每天有近百万字节的信息和贸易通过世联走向全球!积累了大量政商用户数据,翻译人才库数据,多语种语料库大数据。世联品牌和服务品质已得到政务防务和国际组织、跨国公司和大中型企业等近万用户的认可。 专业翻译公司,北京翻译公司,上海翻译公司,英文翻译,日文翻译,韩语翻译,翻译公司排行榜,翻译公司收费价格表,翻译公司收费标准,翻译公司北京,翻译公司上海。