php一个php生成订单号使用了多种支付方式,交易流水里是一种支付方式一条流水还是一个php生成订单号一条流水,有什么利弊

当前位置: >>
农行网上支付平台-商户接口编程指南-PHP
中国农业银行网上支付平台商户接口编程指南PHP Edition V3.0.1 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2修订历史记录日期
版本 V3.0.1 V3.0.1 V3.0.2 草案 将商品种
类分为五大类 初始化 Dictionary 说明 作者 网上支付平台开发小组 网上支付平台开发小组 网上支付平台开发小组网上支付平台开发小组1 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2目录1. 简介 .............................................................................................................................................. 41.1 1.2 1.3 目的............................................................................................................................................................ 4 功能描述.................................................................................................................................................... 4 总体架构图................................................................................................................................................ 42. 接口开发软件包说明 .................................................................................................................. 5 3. 安装步骤 ...................................................................................................................................... 93.1 3.2 3.3 3.4 4.1 4.2 安装前检查................................................................................................................................................ 9 接口开发软件包安装 ................................................................................................................................ 9 接口开发软件包配置 ................................................................................................................................ 9 配置测试应用............................................................................................................................................ 9 单个商户配置说明 .................................................................................................................................. 10 多商户配置说明...................................................................................................................................... 114. 配置文件说明 ............................................................................................................................ 105. 交易说明 .................................................................................................................................... 135.1 交易流程.................................................................................................................................................. 13 5.1.1 支付交易 .......................................................................................................................................... 13 5.1.2 确保支付结果正确送达商户网站的措施 ...................................................................................... 15 5.1.3 其它交易 .......................................................................................................................................... 15 5.2 交易使用时机.......................................................................................................................................... 16 5.3 支付请求.................................................................................................................................................. 18 5.3.1 方式 1:通过与农行服务器建立连接访问农行支付平台服务 ................................................... 18 5.3.2 方式 2:通过页面传参提交表单方式访问农行支付平台服务 ................................................... 21 5.4 两种接收支付结果方式的区别 .............................................................................................................. 22 5.4.1 通过显示给消费者的支付结果接收页面通知商户 ...................................................................... 22 5.4.2 通过支付平台服务器通知商户 ...................................................................................................... 23 5.4.3 区别 .................................................................................................................................................. 25 5.5 支付结果接收页面 .................................................................................................................................. 26 5.6 单笔退款.................................................................................................................................................. 27 5.7 批量退款.................................................................................................................................................. 29 5.8 批量退款查询.......................................................................................................................................... 31 5.9 交易查询.................................................................................................................................................. 33 5.10 交易流水查询.......................................................................................................................................... 35 5.11 对账单查询.............................................................................................................................................. 36 5.12 网上 K 码支付―账单发送 ..................................................................................................................... 38 5.13 网上 K 码支付―支付请求 ..................................................................................................................... 41 5.14 网上 K 码支付―验证码重发 ................................................................................................................. 43 5.15 授权支付签约(银行端) ...................................................................................................................... 44 5.16 授权支付签约(商户端)―申请 .......................................................................................................... 46 5.17 授权支付签约(商户端)―确认 .......................................................................................................... 48 5.18 授权支付签约(商户端)―验证码重发 .............................................................................................. 49 5.19 授权支付解约.......................................................................................................................................... 50 5.20 授权支付签约/解约结果查询 ................................................................................................................. 51网上支付平台开发小组2 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.21 5.22 5.23 5.24 5.25 5.26 5.27单笔授权扣款.......................................................................................................................................... 52 批量授权扣款.......................................................................................................................................... 55 批量授权扣款结果查询 .......................................................................................................................... 58 身份验证(页面跳转) .......................................................................................................................... 59 身份验证结果接收 .................................................................................................................................. 60 身份验证(非页面跳转) ...................................................................................................................... 61 预授权确认/取消..................................................................................................................................... 62附录一、程序范例 ........................................................................................................................... 64 附录二、响应码一览表 ................................................................................................................... 65 附录三、TRUSTPAY CLIENT API ............................................................................................. 68TRXREQUEST ....................................................................................................................................................... 69 PAYMENTREQUEST .............................................................................................................................................. 70 RESULT ................................................................................................................................................................ 73 QUERYORDERREQUEST ....................................................................................................................................... 75 REFUNDREQUEST................................................................................................................................................. 82 SETTLEREQUEST .................................................................................................................................................. 84 AGENTBATCHPAYMENTQUERYREQUEST ........................................................................................................... 86 AGENTBATCHPAYMENTREQUEST ....................................................................................................................... 88 AGENTPAYMENTREQUEST .................................................................................................................................. 91 AGENTSIGNCONTRACTREQUEST ......................................................................................................................... 93 AGENTUNSIGNREQUEST ..................................................................................................................................... 95 BATCHREFUNDREQUEST ..................................................................................................................................... 96 IDENTITYVERIFYREQUEST .................................................................................................................................. 98 PREAUTHPAYMENTREQUEST .............................................................................................................................. 99 QUERYAGENTSIGNREQUEST ............................................................................................................................. 101 QUERYBATCHREQUEST ..................................................................................................................................... 103 QUERYTRNXRECORDS ....................................................................................................................................... 105 QUICKAGENTSIGNCONFIRM .............................................................................................................................. 106 QUICKAGENTSIGNCONTRACTREQUEST ............................................................................................................ 108 QUICKAGENTSIGNRESENDREQ ......................................................................................................................... 110 QUICKIDENTITYVERIFYREQUEST ...................................................................................................................... 111 QUICKPAYMENTREQUEST ................................................................................................................................. 112 QUICKPAYMENTRESEND ................................................................................................................................... 116 QUICKPAYMENTSEND ....................................................................................................................................... 117网上支付平台开发小组3 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.21. 简介1.1 目的提供商户端交易网站通过中国农业银行网上支付平台提供的商户端开发软件包实现功能的编 程指南。1.2功能描述按照本编程指南所描述的标准,商户交易网站可以呼叫调用,支持功能包括支付请求、单笔退 款、交易查询、对账单查询等,并且具备接收网上支付平台支付结果响应的功能。 接口采用电子证书的方式来保证商户与网上支付平台间的身份验证、中间信息传递的完整性, 以便进行电子商务安全当中非常重要的交易身份辨识、不可抵赖、防止篡改等功能。商户 交易网站服务器交易请求 / 响应中国农业银行 网上支付平台购物Internet Internet支付消费者 浏览器1.3总体架构图网上支付平台开发小组4 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.22. 接口开发软件包说明银行提供的接口开发软件包 TrustPayClient-PHP-Vx.x.x.zip(x.x.x 为接口开发软件包的版本号) 包含下列文档。 文件名称 /商户接口编程指南-PHP-Edition-Vx.x.x.pdf /ebusclient/TrustMerchant.ini /cert/abc.truststore /cert/trustpay.cer 本文件 接口配置文件 农行根证书 网上支付平台证书 用于商户在自行开发的页面上,如 果有指向农行网站的图片链接,请 使用这些图片做为农行标识。注 意:图片的整体尺寸可以根据需要 进行缩放,但是图片的内容和比例 大小不能修改。 接口范例首页 支付请求交易范例页面 支付请求交易范例程序 商户通过页面传参数表单提交支付 请求范例页面;根据接口包类型不 同,demo 中可能没有该文件 商户通过页面传参数表单提交支付 请求范例程序;根据接口包类型不 同,demo 中可能没有该文件 支付结果接收范例程序 商户通过页面传参数表单提交支付 请求时,商户接收支付平台返回错 误的范例程序;根据接口包类型不 同,demo 中可能没有该文件 说明/ABCIcon/*.jpg/demo/Merchant.html /demo/MerchantPayment.html /demo/MerchantPayment.php/demo/MerchantPaymentIE.html/demo/MerchantPaymentIE.php/demo/MerchantResult.php/demo/ErrorPage.php网上支付平台开发小组5 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2/demo/ErrorPageInternal.php商户通过页面传参数表单提交支付 请求时,商户本地返回错误页面范 例程序;根据接口包类型不同, demo 中可能没有该文件 直接接收服务器支付结果范例程序 订单查询交易范例页面 订单查询交易范例程序 退货交易范例页面 退货支付交易范例程序 对账单查询范例页面 对账单查询范例程序 授权支付批量交易范例页面 授权支付批量交易范例程序 授权扣款批量处理结果结果查询交 易范例页面 授权扣款批量处理结果结果查询交 易范例程序 单笔授权扣款请求交易范例页面 单笔授权扣款请求交易范例程序 委托扣款签约结果查询交易范例页 面 委托扣款签约结果查询交易范例程 序 授权支付解约交易范例页面/demo/ReceiveServerPage.php /demo/MerchantQueryOrder.html /demo/MerchantQueryOrder.php /demo/MerchantRefund.html /demo/MerchantRefund.php /demo/MerchantTrxSettleQuery.html /demo/MerchantTrxSettleQuery.php /demo/AgentBatchPayment.html /demo/AgentBatchPayment.php/demo/AgentBatchPaymentQuery.html/demo/AgentBatchPaymentQuery.php/demo/AgentPayment.html /demo/AgentPayment.php/demo/AgentSignContractQuery.html/demo/AgentSignContractQuery.php/demo/AgentUnsignContract.html网上支付平台开发小组6 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2/demo/AgentUnsignContract.php /demo/IdentityVerify.html /demo/IdentityVerify.php /demo/MerchantAgentSignContract.html /demo/MerchantAgentSignContract.php /demo/MerchantBatchRefund.html /demo/MerchantBatchRefund.php /demo/MerchantBatchRefundQuery.html /demo/MerchantBatchRefundQuery.php /demo/MerchantQueryTrnxRecords.html /demo/MerchantQueryTrnxRecords.php /demo/MerchantQuickAgentSignContract.html授权支付解约交易范例程序 身份验证交易范例页面 身份验证交易范例程序 授权支付签约交易范例页面 授权支付签约交易范例程序 单笔退款交易范例页面 单笔退款交易范例程序 查询批量处理结果交易范例页面 查询批量处理结果交易范例程序 交易流水查询交易范例页面 交易流水查询交易范例程序 网上 K 码支付接口范例页面 授权支付签约(商户端)交易范例页 面 授权支付签约(商户端)交易范例程 序 授权支付签约确认 (商户端)交易范 例页面 授权支付签约确认 (商户端)交易范 例程序 授权支付签约短信验证码重发(商户 端)交易范例页面 授权支付签约短信验证码重发(商户 端)交易范例程序/demo/QuickAgentSignContract.html/demo/QuickAgentSignContract.php/demo/QuickAgentSignConfirm.html/demo/QuickAgentSignConfirm.php/demo/QuickAgentSignResendReq.html/demo/QuickAgentSignResendReq.php网上支付平台开发小组7 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2/demo/MerchantQuickPaymentReq.html /demo/MerchantQuickPaymentReq.php支付请求交易范例页面 支付请求交易范例程序 网上 K 码支付验证码重发交易范例 页面 网上 K 码支付验证码重发交易范例 程序 网上 K 码支付请求交易范例页面 网上 K 码支付请求交易范例程序 身份验证交易范例页面 身份验证交易范例程序 预授权确认/取消交易范例页面 预授权确认/取消交易范例程序 服务接收通知之后客户展现页面,根 据接口包类型不同,demo 中可能没 有该文件 服务接收通知之后客户展现页面,根 据接口包类型不同,demo 中可能没 有该文件/demo/MerchantQuickPaymentResend.html/demo/MerchantQuickPaymentResend.php/demo/MerchantQuickPaymentSend.html /demo/MerchantQuickPaymentSend.php /demo/StaticIdentityVerify.html /demo/StaticIdentityVerify.php /demo/SubmitPreAuthPayment.html /demo/SubmitPreAuthPayment.php/demo/ResultFail.php/demo/ResultSuccess.php网上支付平台开发小组8 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.23. 安装步骤3.1 安装前检查1、本接口软件包采用 PHP 5.2.0 及以上 标准。3.2接口开发软件包安装1、将银行提供的接口开发软件包 TrustPayClient-PHP-Vx.x.x.zip(x.x.x 为接口开发软 件包的版本号)解压缩到商户自定的安装目录中。 2、请参考《农行网上支付平台 -商户使用手册 V1.0》登录网上支付平台下载商户交易 证书,并将商户交易证书保存到服务器的硬盘或签名服务器中。3.3接口开发软件包配置1、开启接口配置文件 TrustMerchant.ini,依照银行提供的信息设定相对应的参数。详细 配置文件的说明请参考下一章的说明。3.4配置测试应用1、配置 WebApp,指向接口软件包安装目录\demo。 2、开启浏览器进入 http://your.server.name/your.virtual.directory/Merchant.html,确定 接口软件包是否已正确安装及配置;商户通过浏览器提交,请输入: http://your.server.name/your.virtual.directory/MerchantPayment.html 确定接口软件包是 否已正确安装及配置网上支付平台开发小组9 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.24. 配置文件说明本接口软件包支持多商户的配置, 通常一般商户只会使用到单一商户的功能。 如果商户向农行申请 了多个商户号, 同时这些商户的交易都是部署在同一部应用服务器上, 这时你才需要使用到多商户配置 功能。4.1单个商户配置说明配置段 参数名称 数值类型 说明 网上支付平台通讯方式 TrustPayConnectMeth od 字符串 http:使用 HTTP 通讯方式 https:使用 HTTPS 通讯方式 TrustPayServerName TrustPayServerPort 字符串 数字 数字 字符串 网上支付平台服务器名 可以使用服务器的域名或服务器的 IP 地址 网上支付平台交易端口 网上支付平台接口特性 1 或 2 网上支付平台交易网址 商户通过浏览器提交方式,网上支付平台交 易网址;根据接口包类型不同,配置文件中 可能没有该项 网上支付平台证书 农行根证书文件 农行根证书文件密码 商户编号 日志文件存放绝对目录。*请勿输入文件名 商户通过浏览器提交接收网上支付平台返 回错误页面。根据接口包类型不同,配置文 件中可能没有该项 证书储存媒体 MerchantKeyStoreTyp e 数字 0: File 1: 硬件签名服务器 MerchantCertFile 字符串 商户证书储存目录档名网上支付平台 系统配置段 *请依照银行 的指示设定 TrustPayNewLine TrustPayTrxURLTrustPayIETrxURL字符串TrustPayCertFile TrustStoreFile TrustStorePassword 商户资料段 MerchantID LogPath字符串 字符串 字符串 字符串 字符串MerchantErrorURL 商户系统配置 段字符串网上支付平台开发小组10 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2当 KeyStoreType=0 时,必须设定。 必须为 PKCS#12 的文件格式。 MerchantCertPasswor d 字符串 商户私钥加密密码 当 KeyStoreType0 时,必须设定。 签名服务器 IP 地址 当 KeyStoreType=1 时,必须设定。 签名服务器端口 当 KeyStoreType=1 时,必须设定。 签名服务器密码 当 KeyStoreType=1 时,必须设定。SignServerIP字符串SignServerPort数字SignServerPassword字符串4.2多商户配置说明多商户的配置除下列参数外,其它的参数配置与单一商户配置相同。 数值 参数名称 类型 此参数可以配置多个商户号,各个商户号间以逗号分隔开。 说明及范例MerchantID字符串范例: MerchantID=810,345, 64564 此参数可以配置多个商户证书储存目录档名,各个档名间以逗号分 隔开。MerchantCertFile字符串范例: MerchantCertFile =C:\cert\3810.pfx,C:\cert\2345.pfx,C:\cert\4564.pfx 此参数可以配置多个商户私钥加密密码,各个密码间以逗号分隔 开。MerchantCertPassw ord字符串范例: MerchantCertPassword =78请特别注意此三个参数各个参数值的顺序, 相同顺序号的参数值代表一个商户的配置。 以上述 的范例来说:商户号 810 的证书文件为 C:\cert\3810.pfx,而要打开此证书所需要 的密码为 。网上支付平台开发小组11 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2网上支付平台开发小组12 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25. 交易说明农行网上支付平台商户接口采用面向对象的方式设计, 商户在交易的过程中会需要使用到各个不同 的类来完成所需要的交易。本章的说明着重在于流程的说明,类的详细说明请参考《附录三、TrustPay Client API》5.1交易流程本节将说明商户交易平台如何与网上支付平台通信,来完成交易的过程。5.1.1 支付交易支付交易因为需要三方的配合(消费者、商户交易网站、网上支付平台),且交易流程是 分两阶段进行, 所以商户交易平台需要开发两个主要的程序才能完成整个支付的流程, 此两支 程序为“支付请求程序”及“支付结果接收程序”。交易的过程根据支付结果的接收方式的不 同而不同,两种交易流程分别如下图所述: 页面通知支付结果方式:消费者 浏览器商户 交易网站服务器中国农业银行 网上支付平台1、购物 & 选择网上支付 支付请求程序 2、提交订单及支付请求 4、将消费者浏览器页面转至支付页面 3、回传支付页面网址5、进行支付 6、响应支付结果,包含需响应给商户的信息(经过银行签名) 支付结果接收页面 7、浏览器自动提交支付结果 验证信息是否经过银行签名网上支付平台开发小组13 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2服务器通知支付结果方式:网上支付平台开发小组14 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.1.2 确保支付结果正确送达商户网站的措施网上支付平台为了防止网络异常中断所造成的支付结果丢失, 建议商户实现下列网上支付 平台所提供的机制。 ? 交易查询 针对未收到银行交易结果回复的订单, 或银行响应交易状态未明的订单, 商户可以在 任何时刻主动发起交易查询请求 (详细交易说明请参考 5.7 交易查询) , 查询订单 (支付) 的状态。 例如在商户网站提供消费者支付结果查询的功能, 如该订单未收到网上支付平台交易 结果,则调用网上支付平台的交易查询交易取得交易结果(订单状态),然后以取得的交 易结果更新商户网站的支付状态。消费者 浏览器商户 交易网站服务器中国农业银行 网上支付平台支付结果查询页面 1、支付结果查询已收到网上支付平台支付结果 - 显示支付结果未收到网上支付平台支付结果 - 调用网上支付平台的订单查询交易 - 更新支付状态 - 显示支付结果1、支付结果查询 2、响应交易结果? 通知商户支付成功 支付成功后,如果消费者浏览器安装了某些拦截弹出窗口软件(例如 3721),那么 支付结果接收页面有可能不会正常弹出, 此时消费者可以点击 【通知商户支付成功】 按钮, 重新发送支付结果到商户交易平台,确保商户能够收到网上支付平台的交易结果通知。5.1.3 其它交易网上支付平台开发小组15 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2其它的交易(单笔退款、交易查询、对账单查询)只需要商户及网上支付平台的参与,交 易的过程是实时响应, 商户只需要简单的开发交易程序即可完成交易的过程。 交易过程如下图 所述:消费者 浏览器商户 交易网站服务器中国农业银行 网上支付平台交易请求程序 1、提交交易请求 2、响应交易结果5.2交易使用时机? 支付请求交易 消费者在商户网站上购买商品,并选择网上支付时。 ? 支付结果接收消费者在网上支付平台上进行在线支付的操作, 支付成功后, 网上支付平台会将支付的结 果通知到商户指定的支付结果通知页面。 商户必须开发此页面, 否则无法收到支付结果的通知。 ? 退款针对已经结帐的订单,商户可以使用单笔退款或批量退款交易来退还交易金额给消费者。 退款的交易由商户自行发起,不需要消费者的参与。 ? 交易查询针对未收到银行交易结果回复的订单, 或银行响应交易状态未明的订单, 商户可以发起订 单查询请求,查询订单的状态。 网上支付平台的支付结果页面也会提供消费者通知商户支付成功的链接按钮, 用来确定商 户是否已经收到网上支付平台的通知。商户必须开发此页面。 ? 交易流水查询 商户可以指定时间段批量查询交易状态。 ? 对账单查询网上支付平台开发小组16 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2网上支付平台每日根据联机交易后台返回的会计日期来生成对账单。 商户可下载前一日的 交易对账单,确定是否有未回传的成功交易。 ? 网上 K 码支付 不需要跳转页面即能实现网上支付。包括网上 K 码支付账单发送、网上 K 码支付支付请 求和网上 K 码支付验证码重发。 ? 授权支付 客户、商户和银行三方签约后,银行可以代替商户对客户进行扣款。包括授权支付签约、 授权支付签约结果查询、授权支付解约、单笔授权扣款、批量授权扣款和批量授权扣款结 果查询。 ? 身份验证 验证客户证件类型、证件号码和卡号是否与本人户名相匹配,包括需要页面跳转的身份验 证和非页面跳转的身份验证。 ? 预授权确认/取消支付请求中的支付类型选择“预授权支付”时,预授权确认交易进行扣款,预授权取消交 易取消预授权。网上支付平台开发小组17 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.3支付请求5.3.1 方式 1:通过与农行服务器建立连接访问农行支付平台服务当消费者在商户的网站购物确定订单后, 选择使用网上支付付款。 商户首先提交支付请求给网 上支付平台, 接着将消费者的浏览器导到农行网上支付平台的支付页面。 消费者在网上支付平台上 进行在线支付的操作, 支付成功后, 网上支付平台会将支付结果通知给商户, 目前通知方式有两种: ? ? 页面通知:网上支付平台会将支付结果通知到商户指定的支付结果通知页面。 服务器通知:网上支付平台会将支付结果通过支付平台的服务器直接发送到商户的通知 URL提示:开发过程中,当商户将消费者的浏览器导到农行网上支付平台的支付页面时,有可能会 受到消费者安装了某些拦截弹出窗口软件(例如 3721)的影响,所以提醒商户请选择正确的页面 跳转方式(例如通过按钮点击或者重新刷新页面等方式)。 1、 生成订单对象 PaymentRequest 2、 设定订单的属性?PayTypeID交易类型必须设定 ,ImmediatePay:直接支付PreAuthPay:预授权支付 DividedPay:分期支付? OrderDate ? OrderTime ? ExpiredDate ? CurrencyCode ? OrderNo ? OrderAmount ? Fee ? OrderURL订单日期 订单时间必须设定 ,YYYY/MM/DD 必须设定 ,HH:MM:SS 非必须设定订单保存时间 交易币种 订单编号 交易金额 手续费金额 订单说明必须设定,156:人民币 必须设定 必须设定 非必须 非必须 非必须 必须设定,1:分期;0:不分期 分期标识为“1”时必须设定? ReceiverAddress 收货地址 ? InstallmentMark 分期标识 ? InstallmentCode 分期代码网上支付平台开发小组18 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? InstallmentNum?分期期数 商品种类分期标识为“1”时必须设定,0-99 必须设定,CommodityType充值类 0101:支付账户充值 消费类 0201:虚拟类,0202:传统类,0203:实名类 转账类 0301:本行转账,0302:他行转账 缴费类 0401:水费,0402:电费,0403:煤气费,0404:有线电视费,0405:通讯费, 0406:物业费,0407:保险费,0408:行政费用,0409:税费,0410:学费,0499:其他 理财类 0501:基金,0502:理财产品,0599:其他? ?BuyIP OrderDesc客户 IP 订单说明非必须 非必须 非必须? orderTimeoutDate 订单有效期 3、 将订单明细加入订单中(必须设定) ? SubMerName ? SubMerId ? SubMerMCC 二级商户名称 二级商户代码非必须 非必须二级商户 MCC 码 非必须 二级商户备注项 非必须 非必须 必须设定 非必须 非必须 非必须 非必须 非必须 非必须? SubMerchantRemarks ? ProductID ? ProductName ? UnitPrice ? Qty ? ProductRemarks ? ProductType商品代码 商品名称 商品总价 商品数量 商品备注项 商品类型? ProductDiscount 商品折扣 ? ProductExpiredDate 商品有效期 4、 设定支付请求对象的属性网上支付平台开发小组19 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? PaymentType支付类型必须设定, 1:农行卡支付2:国际卡支付 3:农行贷记卡支付 5:基于第三方的跨行支付 6:银联跨行支付 7:对公户 A:支付方式合并? PaymentLinkType 交易渠道必须设定, 1:internet 网络接入2:手机网络接入 3:数字电视网络接入 4:智能客户端? UnionPayLinkType 银联跨行移动支付接入方式非必须, 但是如果选择的支付帐户类型为 6(银联跨行支付)交易渠道为 2(手机网络接入),必须设定0:页面接入 1:客户端接入(仅支持方 式一,方式二不支持)? ReceiveAccount ? ReceiveAccName ? NotifyType收款方账号 收款方户名 通知方式非必须 非必须 必须设定, 0:URL 页面通知1:服务器通知? ResultNotifyURL 通知 URL 地址 ? MerchantRemarks 附言 ? IsBreakAccount ? SplitAccTemplate 交易是否分账 分账模版编号必须设定 非必须 必须设定,0:否;1:是 非必须网上支付平台开发小组20 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25、 使用支付请求对象的 postRequest()方法传送支付请求并取得交易结果对象 如果是多商户, 使用支付请求对象的 extendPostRequest(int) 方法传送支付请求并取得交易结 果对象,参数表示使用第几个商户,从 1 开始。例如,使用第三个商户发送支付请求,则 extendPostRequest(3)。由于 extendPostRequest(int)是父类的方法,所以所有请求对象都可 以使用该方法实现多商户。 6、 使用交易结果对象的 isSuccess()方法辨别支付请求是否成功 7、 若请求成功,可以使用交易结果对象的 GetValue(&PaymentURL&)方法取得支付页面网址,并 将消费者的浏览器导向到此支付页面网址进行支付。 返回信息: ? ReturnCode 返回代码 0000 代表成功? ErrorMessage 返回信息 ? PaymentyURL 支付地址 8、 若请求失败,可以使用交易结果对象的 isSuccess() 及 getErrorMessage()法取得交易失败 原因。5.3.2 方式 2:通过页面传参提交表单方式访问农行支付平台服务该种访问方式用于某些商户服务器不能通过方式 1 访问农行支付平台的情况;通过这种方式 访问农行支付平台服务时, 接口程序的处理流程步骤 1-4 与方式 1 一样 (参见方式 1 的步骤 1-4) 。 9、 使用支付请求对象的 genSignature ()方法产生经过商户服务器证书签名的交易报文。在此过程 中如果发生错误, 会将错误结果和错误码返回到 ErrorPageInternal.php 页面, 该页面需要商户 开发。 10、 如果没有错误, 则将该参数通过表单提交方式转到农行支付平台进行处理; 商户还需要开 发一个错误页面 ErrorPage.php,将其访问地址作为另外一个参数传给农行支付平台(对应配 置文件中的 MerchantErrorURL 项);当支付平台处理该商户请求报文如果有错误发生时,会 将错误结果和错误码返回到商户的 ErrorPag.php 页面,以便商户进行后续处理。农行支付平 台的入口地址是:/ebus/trustpay/ReceiveMerchantIERequestServlet (对应配置文件中的 TrustPayIETrxURL 项); 11、 如果支付平台处理商户的请求报文成功, 则支付平台自动将消费者的浏览器导向到支付页 面网址进行支付。网上支付平台开发小组21 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.4两种接收支付结果方式的区别消费者在网上支付平台上进行在线支付的操作, 支付成功后, 网上支付平台会将支付结果通知 给商户,目前通知方式有两种:通过显示给消费者的支付结果接收页面通知商户和通过支付平台 服务器通知商户5.4.1 通过显示给消费者的支付结果接收页面通知商户商户选择此种接收支付结果通知的方式, 需要开发一个接收支付结果通知的页面 (参见程 序范例中的 MerchantResult.php)。 商户在向网上支付平台发送交易请求的时候选择通过页面通知方式接收支付结果, 传送给 支付平台一个支付结果通知的页面地址;然后消费者在网上进行在线支付,如果支付成功后, 网上支付平台会将支付结果信息通过显示给消费者的支付结果通知页面通知给商户。 交易流程如下:消费者 浏览器 商户 交易网站服务器 中国农业银行 网上支付平台1、购物 & 选择网上支付 支付请求程序 2、提交订单及支付请求 4、将消费者浏览器页面转至支付页面 3、回传支付页面网址5、进行支付 6、响应支付结果,包含需响应给商户的信息(经过银行签名) 支付结果接收页面 7、浏览器自动提交支付结果 验证信息是否经过银行签名网上支付平台开发小组22 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.4.2 通过支付平台服务器通知商户商户选择此种接收支付结果通知的方式,需要开发两个页面: ? 接收服务器通知的页面 ServerURL(参见程序范例中的 ReceiveServerPage.php) ? 展示给消费者支付结果信息的页面 CustomerURL(参见程序范例中的 ResultSuccess.php 和 ResultFail.php) 注意: 这两个页面的 URL 应该是在公网能访问的地址,而且端口号必须为 80 或者 443(http 默认端口为 80;https 默认端口为 443)商户在向网上支付平台发送交易请求的时候选择通过服务器通知的方式接收支付结果, 传 送给支付平台一个接收服务器通知的页面(ServerURL),此页面的 HTML 代码里应该包含 一个准备展示给消费者支付结果的 URL 链接(CustomerURL)(注意:链接之间需要用 &URL&&/URL&包含,具体代码参见程序范例中的 ReceiveServerPage.php),然后消费者在网上支付平台开发小组23 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2网上进行在线支付,如果支付成功后,网上支付平台会将支付结果通知给商户,商户接收到支 付结果信息后,必需将显示给消费者的页面 URL(CustomerURL)链接返回给支付平台服务 器,然后支付平台服务器把接收到的这个展示给消费者支付结果信息的页面弹出给消费者显 示。 如果第一次向商户发送通知时发生下列情况时: ? 1、无法连接到指定的商户交易结果接收页面; ? 2、商户交易结果接收页面没有正确响应消费者支付结果 URL。 系统将会在消费者的浏览器弹出一个新的窗口, 并以此新窗口打开商户支付结果接收页面 (ServerURL)。为了保证在此状况下消费者还是可以看到正常的商户交易结果页面 (CustomerURL),建议在 ServerURL 页面加上自动转向 CustomerURL 的脚本,此脚本范 例请参考程序范例中的 ReceiveServerPage.php 页面。网上支付平台开发小组24 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.4.3 区别采取通过页面通知的方式将支付结果通知给商户, 如果消费者的浏览器里安装了一些弹出 窗口拦截软件(例如:3721),就会导致页面无法弹出,商户也就无法接收到通知消息;采 用服务器通知的方法,网上支付平台会将支付结果消息通过服务器直接发送给商户指定的 URL,而且发送失败以后可以重复发送,这样就保证了商户可以不受消费者本地设置的影响, 正确的接收到支付结果通知。网上支付平台开发小组25 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.5支付结果接收页面消费者在网上支付平台上进行在线支付的操作, 如果商户的支付结果通知方式选择了 “页面通 知”,那么当支付成功后,网上支付平台会将支付的结果发送到商户指定的支付结果通知页面;如 果商户的支付结果通知方式选择了“服务器通知”,那么此页面就是网上支付平台服务器弹出显示 给消费者的支付结果页面。商户取得银行通知信息的步骤说明如下: 注意:对于同一笔订单的支付结果信息,网上支付平台有可能会多次提交到商户指定的支付 结果页面,所以提醒商户在开发过程中注意处理。 1、取得网上支付平台 post 的 MSG 参数 2、利用此参数生成支付结果对象 Result 3、使用支付结果对象的 isSuccess()方法辨别支付是否成功 4、若支付成功并且接收通知后解析成功,则商户可以取得支付结果对象的其他属性来进行后 续的作业 ? OrderNo ? Amount ? BatchNo ? VoucherNo ? HostDate ? HostTime 订单号 订单金额 交易批次号 交易凭证号(建议使用 iRspRef 作为对账依据) 银行交易日期(YYYY/MM/DD) 银行交易时间(HH:MM:SS) 商户备注信息(商户在支付请求时所提交的信息)? MerchantRemarks ? PayType ? NotifyType ? iRspRef消费者支付方式 支付结果通知方式 银行返回交易流水号5、若支付成功但是验签或者解析报文等处理失败,可以使用支付结果对象的 getReturnCode ()及 getErrorMessage()方法取得处理失败原因。网上支付平台开发小组26 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.6单笔退款退款的交易由商户自行发起,不需要消费者的参与,银行对该交易的响应将立即回传。商户发 起退款交易的步骤说明如下: 1、生成退款请求对象 RefundRequest 2、设定退款请求对象的属性 ? OrderDate ? OrderTime 订单日期 订单时间 必须设定,YYYY/MM/DD 必须设定,HH:MM:SS 非必须 非必须 必须设定 必须设定 必须设定,156:人民币 必须设定 非必须? MerRefundAccountNo商户退款账号? MerRefundAccountName 商户退款名 ? OrderNo ? NewOrderNo ? CurrencyCode ? TrxAmount ? MerchantRemarks 原交易编号 交易编号 交易币种 退货金额 附言3、调用退款请求对象的 postRequest()方法传送退款请求并取得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? OrderNo ? NewOrderNo ? TrxAmount ? BatchNo ? VoucherNo ? HostDate ? HostTime ? iRspRef 订单号 退款订单号 退货金额 交易批次号 交易凭证号 银行交易日期(YYYY/MM/DD) 银行交易时间(HH:MM:SS) 银行返回交易流水号网上支付平台开发小组27 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.26、若交易失败,可以使用交易结果对象的 isSuccess()及 getErrorMessage()方法取得交易 失败原因。网上支付平台开发小组28 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.7批量退款批量退款的交易由商户自行发起,不需要消费者的参与,银行对该交易的响应将立即回传,但 是批量退款结果需要通过 5.8 批量退款查询获得。商户发起批量退款交易的步骤说明如下: 1、生成批量退款请求对象 BatchRefundRequest 2、设定批量退款请求对象的属性 ? BatchNo ? OrderDate ? OrderTime 批量编号 订单日期 订单时间 必须设定 必须设定,YYYY/MM/DD 必须设定,HH:MM:SS 非必须 非必须 必须设定 必须设定? MerRefundAccountNo商户退款账号? MerRefundAccountName 商户退款名 ? TotalCount ? TotalAmount 总笔数 总金额3、将退款订单加入批量中(必须设定) ? OrderNo ? NewOrderNo ? CurrencyCode ? RefundAmount ? Remark 原订单号 退款订单号 币种 退款金额 附言 必须设定 必须设定 必须设定 必须设定 非必须4、 调用批量退款请求对象的 postRequest()方法传送批量退款请求并取得交易结果对象 5、 使用交易结果对象的 isSuccess()方法辨别交易是否成功 6、 若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? TrxType ? TotalCount ? TotalAmount 交易种类 交易总笔数 交易总金额网上支付平台开发小组29 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? SerialNumber ? HostDate ? HostTime批量编号 银行交易日期(YYYY/MM/DD) 银行交易时间(HH:MM:SS)7、若交易失败,可以使用交易结果对象的 isSuccess()及 getErrorMessage()方法取得交易 失败原因。网上支付平台开发小组30 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.8批量退款查询商户通过接口向我行电子商务系统发送批量退款结果查询请求,系统验证交易信息的正确性, 验证通过后向商户返回退款处理结果。商户发起批量退款查询的步骤说明如下: 1、 生成退款批量结果查询请求对象 QueryBatchRefundRequest 2、 设定退款批量结果查询请求对象的属性 ? BatchDate ? BatchTime ? SerialNumber 订单日期 订单时间 必须设定 必须设定批量编号3、 调用退款批量结果查询请求对象的 postRequest()方法传送退款批量结果查询请求并取得 交易结果对象 4、 使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、 若交易成功,则使用交易结果对象生成生成批量对象,取得订单的信息。 ? BatchDate ? BatchTime ? SerialNumber ? BatchStatus 订单日期 订单时间 (YYYY/MM/DD) (HH:MM:SS)批量编号 批量状态 商户退款账号? MerRefundAccountNo? MerRefundAccountName 商户退款名 ? RefundAmount ? RefundCount ? SuccessAmount ? SuccessCount ? FailedAmount ? FailedCount 6、 取得订单明细 退款金额 交易总笔数 成功金额 成功笔数 失败金额 失败笔数网上支付平台开发小组31 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? OriginalOrderNo ? RefundOrderNo ? CurrencyCode原交易编号 交易编号 交易币种? RefundAmountCell 交易金额 ? OrderStatus ? Remark 交易状态 备注7、若交易失败,可以使用交易结果对象的 isSuccess()及 getErrorMessage()方法取得交易失 败原因。网上支付平台开发小组32 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.9交易查询商户可以发起交易查询请求,查询订单的状态。商户发起交易查询的步骤说明如下:1、生成订单查询请求对象 QueryOrderRequest 2、设定订单查询请求对象的属性 ? PayTypeID 交易类型 必须设定,ImmediatePay:直接支付PreAuthPay:预授权支付 DividedPay:分期支付 AgentPay:授权支付 Refund:退款 DefrayPay:付款 PreAuthed:预授权确认 PreAuthCancel:预授权取消? OrderNo订单号必须设定 必须设定, 0:状态查询; 1:详细查询? QueryDetail是否查询详细信息3、调用订单查询请求对象的 postRequest()方法传送订单查询请求并取得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则使用交易结果对象生成订单对象,取得订单的信息。 ? PayTypeID ? OrderNo ? OrderAmount ? OrderDate ? OrderTime ? Status 交易类型 订单编号 订单金额 订单日期(查询详细信息时才回传) 订单时间(查询详细信息时才回传) 订单状态6、若为详细查询,可以使用订单对象的 GetValue(&Order &)方法获取订单明细,将订单明细 BASE64 解码后,,再获取订单明细。 7、若交易失败,可以使用交易结果对象的 isSuccess()及 getErrorMessage()方法取得交易失败网上支付平台开发小组33 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2原因。网上支付平台开发小组34 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.10 交易流水查询商户发起交易流水查询的步骤说明如下: 1、 生成交易流水查询请求对象 QueryTrnxRecords 2、 设定交易流水查询请求对象的属性 ? SettleDate ? SettleStartHour ? SettleEndHour ? ZIP 查询日期 必须设定,YYYY/MM/DD 必须设定,时间段 0-23 点 必须设定,时间段 0-23 点查询开始时间 查询结束时间压缩标识必须设定,1:压缩,0:不压缩3、 调用商户交易流水查询请求对象的 postRequest()方法传送交易流水查询请求对象并取得 交易结果对象 4、 使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、 若交易成功,则使用交易结果对象生成交易流水对象 ? TrxType 交易种类? ZIPDetailRecords 压缩后交易明细 ? DetailRecords 交易明细6、 若交易失败,可以使用交易结果对象的 isSuccess()及 getErrorMessage()方法取得交易失 败原因。网上支付平台开发小组35 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.11 对账单查询商户发起对账单查询的步骤说明如下: 1、生成对账单查询请求对象 SettleRequest 2、设定对账单下载请求对象的属性 ? SettleDate ? ZIP 对账日期 必须设定,YYYY/MM/DD压缩标识必须设定,1:压缩,0:不压缩3、调用对账单查询请求对象的 postRequest()方法传送对账单查询请求对象并取得交易结果 对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则使用交易结果对象生成交易对账单对象 ? SettleDate ? SettleType ? NumOfPayments ? SumOfPayAmount ? NumOfRefunds 对账日期 对账类型 该批次支付成功的交易总笔数 该批次支付成功的交易总金额 该批次退货成功的交易总笔数? SumOfRefundAmount 该批次退货成功的交易总金额 ? ZIPDetailRecords 压缩后的详细数据信息 ? DetailRecords 详细数据信息6、使用对账单查询对象的 GetValue(&DetailRecords&)方法取得交易明细,每笔交易明细为字 符串类型,使用逗号分隔不同的字段。字段信息如下: ? 交易类型 ? 订单号 ? 交易时间 ? 交易金额 ? 交易状态网上支付平台开发小组36 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? 付款账号 ? 收款账号 7、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得 交易失败原因。 交易结果对象的 ReturnCode 所回传的响应码请参考《附录二、响应码一览表》的说明。网上支付平台开发小组37 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.12 网上 K 码支付―账单发送商户发起网上 K 码支付账单发送请求的步骤说明如下: 1、生成支付请求对象 QuickPaymentRequest 2、设定订单对象的属性 ? PayTypeID 交易类型 必须设定 ImmediatePay:直接支付 PreAuthPay:预授权支付 DividedPay:分期支付 ? orderTimeoutDate 订单支付有效期 非必须 ? OrderNo ? CurrencyCode ? OrderAmount ? ExpiredDate ? OrderDesc ? OrderDate ? OrderTime ? ReceiverAddress 交易编号 交易币种 交易金额 必须设定 必须设定,156 必须设定 非必须订单保存时间 订单说明 订单日期 订单时间 收货地址非必须 必须设定,YYYY/MM/DD 必须设定,HH:MM:SS 非必须3、将订单明细加入订单中(非必须) ? BuyIP ? SubMerName ? SubMerId ? SubMerMCC 客户交易 IP 非必须 二级商户名称 二级商户代码 非必须 非必须二级商户 MCC 码 非必须 二级商户备注 非必须 必须设定 非必须? SubMerchantRemarks ? ProductID ? ProductName商品代码 商品名称网上支付平台开发小组38 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? UnitPrice ? Qty ? ProductRemarks ? ProductType ? ProductDiscount商品总价 商品数量 商品备注 商品类型 商户折扣非必须 非必须 非必须 非必须 非必须? ProductExpiredDate 4、 设定支付请求对象的属性 ? CardNo ? MobileNo ? CommodityType商品有效期 非必须订单日期必须设定 必须设定手机号后四位 商品种类必须设定,充值类 0101:支付账户充值 消费类 0201:虚拟类,0202:传统类,0203:实名类 转账类 0301:本行转账,0302:他行转账 缴费类 0401:水费,0402:电费,0403:煤气费,0404:有线电视费,0405:通讯费, 0406:物业费,0407:保险费,0408:行政费用,0409:税费,0410:学费,0499:其他 理财类 0501:基金,0502:理财产品,0599:其他? Installment ? Period是否分期 分期期数必须设定,1:分期;0:不分期 非必须,但分期标识为 1 时必须设定。 分期期数 0-99? ProjectID ? PaymentType分期代码非必须 必须设定,1:农行卡支付 3:农行贷记卡支付 A:支付方式合并支付账户类型? PaymentLinkType交易渠道必须设定,1:internet 网络接入 2:手机网络接入 3:数字电视网络接入网上支付平台开发小组39 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.24:智能客户端 ? ReceiveAccount ? ReceiveAccName ? MerchantRemarks ? IsBreakAccount 收款方账号 收款方户名 二级商户备注 交易是否分账 非必须 非必须 非必须 必须设定,0:否;1:是 非必须? SplitAccTemplate 分账模板编号5、 调用网上 K 码支付账单发送请求对象的 postRequest()方法传送网上 K 码支付账单发送请求 对象并取得交易结果对象 6、使用交易结果对象的 isSuccess()方法辨别交易是否成功 7、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? MerchantID ? TrxType ? OrderNo ? Amount ? VerifyDate ? VerifyTime 商户编号 交易种类 订单编号 订单金额 验证日期 验证时间8、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组40 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.13 网上 K 码支付―支付请求商户发起网上 K 码支付支付请求的步骤说明如下: 1、生成支付请求对象 QuickPaymentSend 2、设定支付请求对象的属性 ? OrderNo ? CurrencyCode ? OrderAmount ? Fee ? OrderDate ? OrderTime ? AccName ? CertificateType ? CertificateID ? ExpDate ? 贷记卡 CVV2 ? VerifyCode ? PaymentType 交易编号 交易币种 交易金额 手续费金额 订单日期 订单时间 客户姓名 证件类型 证件号码 卡有效期 cvv2 验证码 支付账户类型 必须设定 必须设定,156 必须设定 非必须 必须设定,YYYY/MM/DD 必须设定,HH:MM:SS 非必须 非必须 非必须 非必须 非必须 非必须 必须设定,1:农行卡支付 2:国际卡支付 3:农行贷记卡支付 ? PayLinkType ? MerchantRemarks 交易渠道 备注 必须设定 非必须3、调用支付请求对象的 postRequest()方法传送支付请求对象并取得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业网上支付平台开发小组41 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? MerchantID ? TrxType ? OrderNo ? Amount ? HostDate ? HostTime商户编号 交易类型 订单编号 订单金额 银行交易日期(YYYY/MM/DD) 银行交易时间(HH:MM:SS)6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得 交易失败原因。网上支付平台开发小组42 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.14 网上 K 码支付―验证码重发商户发起网上 K 码支付验证码重发请求的步骤说明如下: 1、生成网上 K 码支付验证码重发请求对象 QuickPaymentReSend 2、设定网上 K 码支付验证码重发请求对象的属性 ? OrderNo ? CurrencyCode ? OrderAmount ? OrderDate ? OrderTime 订单编号 交易币种 交易金额 订单日期 订单时间 必须设定 必须设定,156:人民币 必须设定 必须设定,YYYY/MM/DD 必须设定,HH:MM:SS3、 调用网上 K 码支付验证码重发请求对象的 postRequest()方法传送网上 K 码支付验证码重发 请求对象并取得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? MerchantID ? TrxType ? OrderNo ? Amount ? HostDate ? HostTime 商户编号 交易种类 订单编号 订单金额 银行交易日期(YYYY/MM/DD) 银行交易时间(HH:MM:SS)6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得 交易失败原因。网上支付平台开发小组43 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.15 授权支付签约(银行端)商户发起量授权支付签约的步骤说明如下: 1、生成授权支付签约请求对象 AgentSignContractRequest 2、设定授权支付签约请求对象的属性 ? CertificateType ? CertificateNo ? NotifyType ? ResultNotifyURL ? OrderNo ? PaymentLinkType ? MerCustomNo ? CardType 证件类型 证件号码 通知方式 通知地址 交易编号 交易渠道 客户编号 卡类型 必须设定 必须设定 必须设定 0:页面通知 1:服务器通知 必须设定 必须设定 必须设定 非必须 必须设定, 1:农行借记卡准贷记卡 3:农行贷记卡 A:农行卡合并 ? RequestDate ? RequestTime ? InvaidDate ? IsSign 签约日期 签约时间 签约有效期 签约标识 必须设定 必须设定 必须设定 必须设定3、调用授权支付签约请求对象的 postRequest()方法传送授权支付签约请求对象并取得交易结 果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,将客户端导向签约页面 ? B2CAgentSignContractURL ? OrderNo ? TrxType 签约页面地址交易编号 交易类型网上支付平台开发小组44 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.26、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组45 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.16 授权支付签约(商户端)―申请商户发起量授权支付签约请求的步骤说明如下: 1、生成授权支付签约请求对象 QuickAgentSignContractRequest 2、设定授权支付签约请求对象的属性 ? OrderDate ? OrderTime ? OrderNo ? PaymentLinkType ? MerCustomNo ? AgentSignNo ? CardNo ? CardType 订单日期 订单时间 交易编号 交易渠道 客户编号 签约编号 签约账号 卡类型 必须设定,YYYY/MM/DD 必须设定,HH:MM:SS 必须设定 必须设定 非必须 非必须 必须设定 必须设定, 1:农行借记卡准贷记卡 3:农行贷记卡 A:农行卡合并 ? MobileNo ? InvaidDate ? IsSign ? AccName ? CertificateNo ? CertificateType ? CardDueDate ? CVV2 手机号 签约有效期 签约/解约标识 客户姓名 证件号码 证件类型 贷记卡有效期 贷记卡 CVV2 必须设定 必须设定 必须设定 必须设定 必须设定 必须设定 卡类型为贷记卡时必须设定 卡类型为贷记卡时必须设定3、调用授权支付签约请求对象的 postRequest()方法传送授权支付签约请求对象并取得交易结 果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功网上支付平台开发小组46 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? TrxType ? OrderNo 交易类型 交易编号6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得 交易失败原因。网上支付平台开发小组47 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.17 授权支付签约(商户端)―确认商户发起量授权支付签约确认请求的步骤说明如下: 1、生成授权支付签约确认请求对象 QuickAgentSignConfirm 2、设定授权支付签约确认请求对象的属性 ? OrderNo ? VerifyCode 交易编号 验证码 必须设定 非必须3、调用授权支付签约确认请求对象的 postRequest()方法传送授权支付签约确认请求对象并取 得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? TrxType ? OrderNo ? AgentSignNo 交易类型 交易编号 签约号6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得 交易失败原因。网上支付平台开发小组48 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.18 授权支付签约(商户端)―验证码重发商户发起量授权支付签约验证码重发请求的步骤说明如下: 1、生成授权支付签约验证码重发请求对象 QuickAgentSignResendReq 2、设定授权支付签约验证码重发请求对象的属性 ? OrderNo ? CardNo 交易编号 签约账号 必须设定 必须设定3、调用授权支付签约验证码重发请求对象的 postRequest()方法传送授权支付签约验证码重发 请求对象并取得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? TrxType ? OrderNo ? CardNo 交易种类 交易编号 签约账号6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组49 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.19 授权支付解约商户通过接口向我行电子商务系统发送授权支付解约请求,系统验证解约请求信息的正确性, 验证通过后将解约结果通知商户及客户。商户发起量授权支付解约请求的步骤说明如下: 1、生成授权支付解约请求对象 AgentUnSignRequest 2、设定授权支付解约请求对象的属性 ? OrderNo ? AgentSignNo ? RequestDate ? RequestTime 交易编号 签约编号 请求日期 请求时间 必须设定 必须设定 必须设定,YYYY/MM/DD 必须设定 HH:MM:SS3、调用授权支付解约请求对象的 postRequest()方法传送授权支付解约请求对象并取得交易结 果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? OrderNo ? TrxType 交易编号 交易类型6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组50 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.20 授权支付签约/解约结果查询商户发起量授权支付签约结果查询的步骤说明如下: 1、生成商户授权支付签约/解约结果查询请求对象 QueryAgentSignRequest 2、设定商户授权支付签约/解约结果查询请求对象的属性 ? OrderNo 签约编号 必须设定3、 调用商户授权支付签约/解约结果查询请求对象的 postRequest()方法传送查询请求对象并取 得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? TrxType ? MerchantNo ? OrderNo ? AgentSignNo ? CertificateNo ? CertificateType ? Last4CardNo ? SignDate ? UnSignDate ? AgentSignStatus ? AccountType ? PaymentLinkType ? InvaidDate 交易种类 商户代码 交易编号 签约编号 证件号码 证件类型 签约卡号后四位 签约日期 解约日期 签约状态 账户类型 交易渠道 签约有效期6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组51 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.21 单笔授权扣款商户通过接口向我行电子商务系统发送单笔授权扣款请求,系统验证扣款请求信息的正确性, 验证通过后进行扣款并将扣款结果通知商户。商户发起单笔授权扣款请求的步骤说明如下: 1、生成单笔授权扣款请求对象 AgentPaymentRequest 2、设定单笔授权扣款请求对象的属性 ? OrderDate ? OrderTime ? OrderNo ? AgentSignNo ? CardNo ? CurrencyCode ? Amount ? ReceiverAddress ? Fee ? CertificateNo ? InstallmentMark ? InstallmentCode ? InstallmentNum ? CommodityType 订单日期 订单时间 交易编号 签约编号 支付账号 交易币种 订单金额 收货地址 必须设定,YYYY/MM/DD 必须设定,HH:MM:SS 必须设定 必须设定 非必须 必须设定,156 必须设定 非必须手续费金额 非必须 证件号码 分期标识 分期代码 分期期数 商品种类 非必须 必须设定 非必须 非必须 必须设定充值类 0101:支付账户充值 消费类 0201:虚拟类,0202:传统类,0203:实名类 转账类 0301:本行转账,0302:他行转账 缴费类 0401:水费,0402:电费,0403:煤气费,0404:有线电视费,0405:通讯费, 0406:物业费,0407:保险费,0408:行政费用,0409:税费,0410:学费,0499:其他 理财类 0501:基金,0502:理财产品,0599:其他? PaymentLinkType交易渠道必须设定网上支付平台开发小组52 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? BuyIP ? ExpiredDate ? ReceiveAccount ? ReceiveAccName ? MerchantRemarks ? IsBreakAccount客户交易 IP 非必须 订单保存时间 非必须收款方账号 非必须 收款方户名 非必须 备注 非必须交易是否分账 必须设定 非必须? SplitAccTemplate 分账模板编号 3、 将订单明细加入订单中(必须设定) ? SubMerName ? SubMerId ? SubMerMCC 二级商户名称 二级商户代码非必须 非必须二级商户 MCC 码 非必须 二级商户备注项 非必须 非必须 必须设定 非必须 非必须 非必须 非必须 非必须 非必须? SubMerchantRemarks ? ProductID ? ProductName ? UnitPrice ? Qty ? ProductRemarks ? ProductType商品代码 商品名称 商品总价 商品数量 商品备注项 商品类型? ProductDiscount 商品折扣 ? ProductExpiredDate 商品有效期3、 调用单笔授权扣款请求对象的 postRequest()方法传送单笔授权扣款请求对象并取得交易 结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? OrderNo 交易编号网上支付平台开发小组53 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? TrxType交易类型6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得 交易失败原因。网上支付平台开发小组54 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.22 批量授权扣款商户通过接口向我行电子商务系统发送批量授权扣款请求,系统验证扣款请求信息的正确性, 验证通过后进行扣款。商户发起批量授权扣款请求的步骤说明如下: 1、生成批量授权扣款请求对象 AgentBatchPaymentRequest 2、设定批量授权扣款请求对象的属性 ? BatchNo ? BatchDate ? BatchTime ? AgentCount ? AgentAmount ? ReceiveAccount ? ReceiveAccName ? CurrencyCode 交易批次号 订单日期 订单时间 批次总笔数 批次总金额 收款方账号 收款方户名 交易币种 必须设定 必须设定 必须设定 必须设定 必须设定 非必须 非必须 必须设定3、 将扣款订单加入批量中(必须设定) ? SeqNo ? OrderNo ? AgentSignNo ? CardNo ? OrderAmount ? ReceiverAddress ? Fee ? CertificateNo ? InstallmentMark ? InstallmentCode ? InstallmentNum ? CommodityType 序列号 订单号 签约号 卡号 订单金额 收货人地址 手续费金额 证件号码 分期标识 分期代码 分期期数 商品种类 必须设定 必须设定 必须设定 非必须 必须设定 非必须 非必须 非必须 必须设定,1:分期;0:不分期 分期标识为“1”时必须设定 分期标识为“1”时必须设定,0-99 必须设定,网上支付平台开发小组55 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2充值类 0101:支付账户充值 消费类 0201:虚拟类,0202:传统类,0203:实名类 转账类 0301:本行转账,0302:他行转账 缴费类 0401:水费,0402:电费,0403:煤气费,0404:有线电视费,0405:通讯费, 0406:物业费,0407:保险费,0408:行政费用,0409:税费,0410:学费,0499:其他 理财类 0501:基金,0502:理财产品,0599:其他? SubMerName ? SubMerId ? SubMerMCC二级商户名称 二级商户代码非必须 非必须二级商户 MCC 码 非必须 二级商户备注项 非必须 非必须 必须设定 非必须 非必须 非必须 非必须 非必须 非必须 非必须 非必须 必须设定 非必须? SubMerchantRemarks ? ProductID ? ProductName ? UnitPrice ? Qty ? ProductRemarks ? ProductType ? ProductDiscount商品代码 商品名称 商品总价 商品数量 商品备注项 商品类型 商品折扣? ProductExpiredDate 商品有效期 ? BuyIP ? Remark ? IsBreakAccount 客户 IP 附言 交易是否分账? SplitAccTemplate 分账模板编号4、 调用批量授权扣款请求对象的 postRequest()方法传送批量授权扣款请求对象并取得交易 结果对象 5、使用交易结果对象的 isSuccess()方法辨别交易是否成功 6、若交易成功,,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? TrxType 交易种类网上支付平台开发小组56 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2? MerchantNo ? SendTime商户代码 发送时间7、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得 交易失败原因。网上支付平台开发小组57 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.23 批量授权扣款结果查询商户通过接口向我行电子商务系统发送批量授权扣款结果查询请求, 系统验证交易信息的正确 性,验证通过后向商户返回授权扣款处理结果。商户发起量授权扣款结果查询的步骤说明如下: 1、生成批量授权扣款查询请求对象 AgentBatchPaymentQueryRequest 2、设定批量授权扣款查询求请对象的属性 ? BatchNo ? BatchDate 批次编号 批次日期 必须设定 必须设定3、调用批量授权扣款查询请求对象的 postRequest()方法传送批量授权扣款查询请求对象并取 得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则取得批量授权扣款明细 ? BatchNo ? BatchDate ? BatchTime ? AgentAmount ? BatchStatus ? BatchStatusZH ? CurrencyCode ? SuccessAmount ? SuccessCount ? FailedAmount ? FailedCount 批次编号 批次日期 批次时间 (YYYY/MM/DD) (HH:MM:SS)批次总金额 批次状态 批次状态(中文) 交易币种 成功金额 成功笔数 失败金额 失败笔数6、 若交易失败, 可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组58 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.24 身份验证(页面跳转)商户通过接口向我行电子商务系统发送客户身份验证请求, 系统验证交易信息的正确性, 引导 客户跳转到我行相应页面完成身份验证,将验证结果通知商户。 1、生成身份验证请求对象 IdentityVerifyRequest 2、设定身份验证请求对象的属性 ? CustomType ? BankCardNo ? CertificateNo ? CertificateType ? ResultNotifyURL ? OrderDate ? OrderTime ? PaymentLinkType 客户类型 银行帐号 证件号码 证件类型 必须设定 必须设定 必须设定 必须设定 必须设定身份验证回传网址 请求日期 请求时间 交易渠道必须设定,YYYY/MM/DD 必须设定,HH:MM:SS 必须设定3、调用身份验证请求对象的 postRequest()方法传送身份验证请求对象并取得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,将客户端导向身份验证页面 ? VerifyURL 身份验证页面地址6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组59 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.25 身份验证结果接收商户在网上支付平台进行客户身份验证的操作。 如果客户的身份信息验证通过, 则取得客户身 份验证结果。商户进行客户身份验证的步骤说明如下: 1、取得网上支付平台 post 的 MSG 参数 2、利用此参数值生成验证结果对象 PaymentResult 3、使用验证结果对象的 isSuccess()方法辨别验证是否成功 4、若身份验证请求对象的验证正确,则商户可以取得户名信息 ? AccountName 户名5、 若身份验证或验证失败, 可以使用支付结果对象的 getReturnCode ()及 getErrorMessage() 方法取得处理失败原因。网上支付平台开发小组60 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.26 身份验证(非页面跳转)商户通过接口向我行电子商务系统发送客户身份验证请求, 系统验证交易信息的正确性, 将交 易结果通知商户。商户发起身份验证的步骤说明如下: 1、生成身份验证请求对象 QuickIdentityVerifyRequest 2、设定身份验证请求对象的属性 ? ClientName ? AccNo ? CertificateNo ? CertificateType ? MobileNo ? CustomNo 客户姓名 银行帐号 证件号码 证件类型 手机号 网银客户号 必须设定 必须设定 必须设定 必须设定 必须设定 必须设定3、调用身份验证请求对象的 postRequest()方法传送身份验证请求对象并取得交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则通知商户验证结果 6、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组61 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.25.27 预授权确认/取消商户通过接口向我行电子商务系统发送预授权确认/取消, 系统验证交易信息的正确性, 将交易 结果通知商户。商户发起预授权确认/取消的步骤说明如下: 1、生成退货请求对象 PreAuthPaymentRequest 2、设定退货请求对象的属性 ? OperateType ? OrderDate ? OrderTime ? OrderNo ? OriginalOrderNo ? CurrencyCode ? OrderAmount ? Fee ? MerchantRemarks 交易类型 交易日期 交易时间 交易编号 必须设定 必须设定 必须设定 必须设定原交易编号 必须设定 币种 金额 必须设定 必须设定手续费金额 非必须 附言3、调用预授权确认/取消请求对象的 postRequest()方法传送预授权确认/取消请求对象并取得 交易结果对象 4、使用交易结果对象的 isSuccess()方法辨别交易是否成功 5、若交易成功,则商户可以取得交易结果对象的其他属性来进行后续的作业 ? OrderNo ? OrderAmount ? OriginalOrderNo ? BatchId ? VouchNo ? HostDate ? HostTime ? iRspRef 订单号 订单金额 原交易编号 批次编号 票据号 银行交易日期(YYYY/MM/DD) 银行交易时间(HH:MM:SS) 银行返回交易流水号网上支付平台开发小组62 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.26、若交易失败,可以使用交易结果对象的 getReturnCode ()及 getErrorMessage()方法取得交 易失败原因。网上支付平台开发小组63 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2附录一、程序范例详见 demo 程序范例。网上支付平台开发小组64 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2附录二、响应码一览表响应码 01 04 00 03 02 05 02 响应类型 网上支付平台返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 本地返回 交易成功 无法读取商户端配置文件 商户端配置文件中参数设置错误 无法读取商户证书文档 无法读取商户私钥 无法写入交易日志文档 证书过期 证书格式错误 商户提交的交易资料不完整 商户提交的交易资料不合法 签名交易报文时发生错误 无法连线签名服务器 签名服务器返回签名错误 无法连线网上支付平台 提交交易时发生网络错误 无法接收到网上支付平台的响应 接收网上支付平台响应报文时发生网络错误 无法辨识网上支付平台的响应报文 网上支付平台服务暂时停止 网上支付平台的响应报文不完整 网上支付平台的响应报文签名验证失败 说明网上支付平台开发小组65 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.200 03 00 01 01 04 07 本地返回 本地返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回无法辨识网上支付平台的交易结果 系统发生无法预期的错误 无法读取网上支付平台系统配置文件 网上支付平台系统配置文件中参数设置错误 无法读取网上支付平台证书 无法读取网上支付平台私钥 数据库错误 证书格式错误 商户提交的交易资料不完整 商户提交的交易资料不合法 签名响应报文时发生错误 无法连线银行后台系统 接收商户交易请求时发生网络错误 无法辨识商户提交的交易请求报文 商户提交的交易请求报文不完整 商户提交的交易请求报文签名验证失败 商户提交的商户号与签名所用的证书不匹配 商户状态不允许交易 商户不存在 订单状态不允许进行此种交易 无此订单 商户无可用的支付方式 无法取得商户证书网上支付平台开发小组66 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.200 2500网上支付平台返回 网上支付平台返回 网上支付平台返回 网上支付平台返回网上支付平台未开放此种类的交易 商户未开放指定的商品种类 后台系统响应交易失败 所有交易已测试通过,请通知银行开放可以进行正式交易 测试交易种类错误,请按照网上支付平台所指示的顺序进行测 试 未到可以下载对账单的时间,请在可以下载对账单的时间再下 载 系统发生无法预期的错误2501网上支付平台返回2600网上支付平台返回2999网上支付平台返回网上支付平台开发小组67 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2附录三、TrustPay Client API本章中所有对象的属性皆可用 array ()设定相对应的属性,并用 GetValue(&key&)和 GetArrayValue(&key&)来取得返回的值。如要取得 返回报文的 ReturnCode 值,可以使用 getReturnCode ()。网上支付平台开发小组68 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2TrxRequest? 说明 商户端接口软件包实体类, 代表网上支付平台商户提交交易的请求对象, 是所有交易请求 的父类。 ? 属性 没有公开属性 ? 方法 ? ppublic function postRequest() 发送商户请求,调用 extendPostRequest(1)。 ? ppublic function extendPostRequest($i) 发送商户请求。参数表示使用第几个商户。 ? public function genSignature($i) 产生带签名的报文,商户通过页面传参数访问农行 ebus 服务时调用网上支付平台开发小组69 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2PaymentRequest? 说明 商户端接口软件包业务处理类,负责商户提交支付请求的处理。 ? 属性 对象 属性 属性名称 说明 必须设定, ImmediatePay: 直接支付 PayTypeID 交易类型 PreAuthPay: 预授权支付 DividedPay:分期支付 OrderDate OrderTime 订单日期 订单时间 必须设定, YYYY/MM/DD 必须设定, HH:MM:SS(24 小时制) String order OrderDesc 订单说明 非必须 非必须, orderTimeountDate 订单支付有效 期 YYYYMMDDHHMMSS(2 4 小时制) String OrderNo 交易编号 必须设定 String 不超过 60 3 String 不超过 100 14 String String 10 8 类型 String 长度CurrencyCode交易币种必须设定,156:人民币OrderAmount交易金额必须设定, 保留 2 位小数, String 以“元”为单位 非必须,保留 2 位小数, 以“元”为单位 非必须, 合法的 URL 地址 非必须 必须设定,1:分期;0: 非分期。交易类型为直接 String String String 无要求 无要求 1 StringFee手续费金额OrderURL ReceiverAddress InstallmentMark订单地址 收货地址 分期标识网上支付平台开发小组70 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2支付或预授权支付时,分 期标识不允许输入为 1 非必须,但分期标识为 1 InstallmentNum 分期期数 时必须设定。分期期数 0-99 InstallmentCode CommodityType BuyIP ExpiredDate 分期代码 商品种类 客户交易 IP 订单保存时间 非必须 必须设定 非必须,合法 ip 地址 非必须,以天为单位 必须设定, 1: 农行卡支付 2: 国际卡支付 3: 农行贷 PaymentType 支付账户类型 记卡支付 5:基于第三方 的跨行支付 A:支付方式 合并 6:银联跨行支付 必须设定,1:internet 网 PaymentLinkType request ReceiveAccount ReceiveAccName 收款方账号 收款方户名 交易渠道 络接入 2:手机网络接入 3:数字电视网络接入 4: 智能客户端 非必须 非必须 必须设定,0:URL 页面 通知 1:服务器通知 必须设定, 合法的 URL 地 址 String MerchantRemarks 附言 非必须 String String String 不超过 200 不超过 100 1 无要求 String String String 无要求 无要求 1 String 1 String String String String String 1 8 4 String 1-2NotifyType通知方式ResultNotifyURL通知 URL 地址IsBreakAccount SplitAccTemplate交易是否分账 分账模板编号必须设定,0:否;1:是 非必须网上支付平台开发小组71 of 118 农行网上支付平台 商户接口编程指南 C PHP Edition C V3.0.2SubMerName SubMerId二级商户名称 二级商户代码 二 级 商 户 MCC 码非必须 非必须String String String无要求 无要求 无要求SubMerMCC非必须 String 无要求SubMerchan

我要回帖

更多关于 淘宝订单支付方式记录 的文章

 

随机推荐