山海微信支付接口开发文档

合集下载

【微信支付】微信公众号支付接口文档V3.3.7

【微信支付】微信公众号支付接口文档V3.3.7

微信公众号支付接口文档(V3.3.7)目录微信公众号支付接口文档 (1)1.微信支付简介 (4)1.1.功能简介 (4)1.2.支付账户 (4)1.3.支付方式 (5)2.支付场景介绍 (5)2.1.网页内支付场景---JS API(网页内)支付接口 (5)2.1.1.交互细节 (7)2.1.2.JSAPI支付时序图 (8)2.1.3.获取当前微信版本号 (8)2.1.4.显示微信安全支付标题 (8)2.2.线下扫码购买场景---Native(原生)支付接口 (9)2.2.1使用场景 (9)2.2.2.Native(原生)支付URL定义 (10)3.接口说明 (12)3.1.接口调用规则 (12)3.2.Sign签名生成方法 (13)3.3.代码实例 (14)4.API说明 (15)4.1.统一支付接口 (15)4.2.通用通知接口 (17)4.3.订单查询接口 (19)4.4.JSAPI支付——H5网页端调起支付接口 (21)4.5.Native支付——二维码链接 (22)4.6.Native支付——请求商家获取商品信息接口 (23)4.7关闭订单接口 (24)4.8.退款申请接口 (25)4.9.退款查询接口 (26)4.10.对账单接口 (28)4.11.短链接转换接口 (30)4.12.接口调用上报接口 (31)5.企业红包使用说明 (32)5.1创建批次企业红包 (32)5.2提交支付使用企业红包 (33)5.3查询使用企业红包金额 (33)5.4企业红包对账单 (33)6.错误码列表 (33)7.常见问题和注意事项 (34)7.1.常见基本概念疑惑 (34)7.2.常见错误现象及解决方法 (34)7.3.常见注意事项 (35)7.4.联系我们 (36)1.微信支付简介1.1.功能简介微信支付,是基于微信客户端提供的支付服务功能。

同时向商户提供销售经营分析、账户和资金管理的功能支持。

用户通过扫描二维码、微信内打开商品页面购买等多种方式调起微信支付模块完成支付。

【最新文档】Android开发微信APP支付功能的要点小结讲解-实用word文档 (2页)

【最新文档】Android开发微信APP支付功能的要点小结讲解-实用word文档 (2页)

【最新文档】Android开发微信APP支付功能的要点小结讲解-实用word文档本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! == Android开发微信APP支付功能的要点小结讲解基本概念包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置。

签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置。

调试阶段,签名文件可以使用调试用的debug.keystore,签名可以直接在eclipse上面查看,或者用工具查看,安装打开输入包名即可查看。

发布的时候一定需要在微信支付平台上面设置成发布用的签名值。

官方的Demo里面的内容并不是全是必须的,甚至只需要有libammsdk.jar就够了,AndroidManifest.xml也不用配置。

AndroidManifest.xml的配置和WXPayEntryActivity.java只是为了能够得到支付回调,可以先不用去管,先调试能不能发起支付。

把libammsdk.jar拷贝到你项目的libs下,并添加jar引用。

代码里发起支付请求:IWXAPI api = WXAPIFactory.createWXAPI(this,Values.WXPAYAPPID);api.registerApp(Values.WXPAYAPPID); // 注册APPID,这句很重要,不然不会发起调用PayReq req = new PayReq();req.appId = wxPay.appid;// 也就是Values.WXPAYAPPID,如果二者不一致的话是没法发起支付的。

req.partnerId = json.getString("partnerid");req.prepayId = json.getString("prepayid");req.nonceStr =json.getString("noncestr");req.timeStamp =json.getString("timestamp");req.packageValue =json.getString("package");req.sign =json.getString("sign");//req.extData = "";// "app data"; // optionalboolean r = api.sendReq(req);if(!r) { Toast.makeText(this,"打开微信支付失败!",Toast.LENGTH_SHORT).show();}。

微信支付接口总结

微信支付接口总结

微信支付接口说明文档
一、接口说明
1、统一支付接口
调用统一支付接口,可接受jsapi/native/app方式下的预支付订单,会返回支付链接
code_url和预支付订单号prepay_id。

业务可以根据自己需求进行应用。

2、通用通知接口
3、订单查询接口
4、登陆授权接口
回调授权域名需要在微信公众平台->开发者中心->接口权限表->
5、JSAPI接口-H5网页端调起支付接口
1)、调用登陆授权接口返回openid
2)、调用统一支付接口,方式jsapi。

获取prepay_id
3)、执行js调起支付。

6、Native支付模式一
1)、生成模式一的支付链接。

根据链接生成二维码,这种方式适用于打印静态二维
码的方式
2)、微信回调商户url。

(此回调地址需要在微信公众平台->微信支付->开发配置中
进行配置。

)商户在回调地址中调用统一支付接口生成,把prepay_id返回给微信。

7、退款申请接口
8、退款查询接口
9、短链接转换接口
10、对账单接口
11、关闭链接接口
12、接口调用上报接口
二、一期完成接口
1、统一支付接口
2、通用通知接口
3、订单查询接口
4、退款申请接口
5、退款查询接口
6、短链接接口
7、登陆授权接口。

微信接口设计文档

微信接口设计文档

微信接口设计文档微信接口设计方案一:接口描述接口主要功能是完成信息推送,信息可以按照用户、组、标签进行推送,也可同时推送给多个微信应用。

二:接口开发接口开发采用一般处理程序的服务接口,通过Post请求方式访问接口。

三:接口认证客户端和服务端双方约束一个GUID字符串,接口方法通过GUID 判断客户是否是合法用户。

四:接口方法接口方法传递两个参数1:token (客户端服务器端的认证GUID字符串)2:weixinModelList(客户端服务器段定义的对象集合的Json形式)五:接口参数类型客户端和服务器段定义接口类public class WeixinModel{public WeixinModel() { }//列表IDpublic string ID { get; set; }//列表名称public string ListName { get; set; }//内容类型(设置微信state参数,通过此参数跳转具体页面,备用)public string StateType { get; set; }//发布标题public string Title { get; set; }//发布描述public string Description { get; set; }//连接详细页面public string Url { get; set; }//连接图片public string PicUrl { get; set; }//推送AppID集合public List AppIdList { get; set; }//推送类型:0:全部;1-用户;2-组;3-标签;public string PushType { get; set; }//推送范围:如果PushType=1 那么PushScope就是用户public List PushScopeList { get; set; }}六:接口发布单独发布应用程序站点,微信只支持80和443端口。

微信扫码支付2-开发文档

微信扫码支付2-开发文档

微信扫码⽀付2-开发⽂档
⼀、场景介绍
⽤户扫描商户展⽰在各种场景的⼆维码进⾏⽀付。

步骤1:商户根据微信⽀付的规则,为不同商品⽣成不同的⼆维码,展⽰在各种场景,⽤于⽤户扫描购买。

步骤2:⽤户使⽤微信“扫⼀扫”扫描⼆维码后,获取商品⽀付信息,引导⽤户完成⽀付。

步骤3:⽤户确认⽀付,输⼊⽀付密码。

步骤4:⽀付完成后会提⽰⽤户⽀付成功,商户后台得到⽀付成功的通知。

⼆、开发步骤
推荐使⽤模式⼆
1、模式⼀
2、模式⼆
模式⼆与模式⼀相⽐,流程更为简单,不依赖设置的回调⽀付URL。

商户后台系统先调⽤微信⽀付的统⼀下单接⼝,微信后台系统返回链接参数code_url,商户后台系统将code_url值⽣成⼆维码图⽚,⽤户使⽤微信客户端扫码后发起⽀付。

注意:code_url有效期为2⼩时,过期后扫码不能再发起⽀付。

三、微信⽀付接⼝规则
微信⽀付接⼝调⽤的整体思路:按API要求组装参数,以XML⽅式发送(POST)给微信⽀付接⼝(URL),微信⽀付接⼝也是以XML⽅式给予响应。

协议规则
参数规定
安全规范
使⽤sdk可以简化接⼝的调⽤。

【微信APP支付】接口文档V1.2_For_IOS

【微信APP支付】接口文档V1.2_For_IOS

3
[package appendString:"&"]; } [package appendString:"key="]; [package appendString:PARTNERKEY]; // 注意:不能hardcode在客户端,建议genPackage这 个过程都由服务器端完成 // 进行md5摘要前,params内容为原始内容,未经过url encode处理 String packageSign = package.md5.uppercaseString; return [NSString stringWithFormat:@"%@&sign=%@",paragramString,packageSigSMutableString *signText = [NSMutableString string]; for (NSString *key in [params allKeys]) { [signText appendString:key]; [signText appendString:@"="]; [signText appendString:[params objectForKey:key]]; [signText appendString:"&"]; } NSString *signResult = signText.sha1; // 注意:不能hardcode在客户端,这个过程都由服务器端完 成
参数 appid
traceid noncestr package timestamp app_signature
是否必须 是 否 是 是 是 是
说明 应用唯一标识,在微信开放平台提交应用审核通 过后获得

微信支付API文档V2.5.6

微信支付API文档V2.5.6

微信被扫支付接口文档V2.5 1微信被扫支付接口文档(版本2.5.6)微信被扫支付接口文档V2.5 2目录微信被扫支付接口文档 (1)1. 被扫支付介绍 (3)1.1 交互细节 (3)1.3 免密额度 (4)1.4 接口调用方式 (4)1.5 签名方式 (5)2. API 说明 (6)2.1 提交被扫支付API (6)2.2 被扫订单查询API (9)2.3 退款申请接口 (12)2.4 退款查询接口 (13)2.5 撤销接口 (15)2.6 对账单接口 (16)2.7 授权码查询OPENID 接口 (18)3.企业红包使用说明 (19)3.1 创建批次企业红包 (19)3.2 提交支付使用企业红包 (19)3.3 查询使用企业红包金额 (19)3.4 企业红包对账单 (20)4.错误码列表 (20)微信被扫支付接口文档V2.5 31. 被扫支付介绍1.1交互细节根据微信被扫支付场景,设计商家支付逻辑。

(1)商户收银系统生成订单,进入微信支付流程;(2)用户打开微信刷卡界面,收银系统扫描到用户二维码或条码(见下左图);(3)组装支付交易需要的数据,并生成签名(签名方式见1.5节);(4)调用微信被扫API(详见2.1节),提交支付请求;(5)用户使用微信被扫支付未超过免密限额(详见1.3节),微信直接扣款成功,否则用户端微信会弹出输入密码提示(见下中图),支付成功后用户微信侧会弹出交易结果(见下右图);-> ->(6)步骤4提交请求后会同步返回支付结果。

如果需要密码验证,支付结果返回USERPAYING (用户支付中)的状态。

当支付结果为系统错误,需要商户收银系统调用订单查询API(详见2.2节)查询支付实际交易结果;当返回USERPAYING时等待用户输入密码,系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议30秒);(4)在交易状况不明晰的情况下调用撤销接口(详见2.5节),如果交易失败则关闭订单,该单不能再支付成功;如果交易成功,则将扣款退回到用户账户。

微信支付API文档120(受理)

微信支付API文档120(受理)

1. 阅读对象本文阅读对象:商户系统(在线购物平台、人工收银系统、自动化智能收银系统或其他)集成微信支付涉及的技术架构师,研发工程师,测试工程师,系统运维工程师。

2. 术语1. 支付模式1) 被扫支付被扫支付是用户展示微信上“我的刷卡条码/二维码”给商户系统扫描后直接完成支付的模式。

主要应用线下面对面收银的场景。

2) 扫码支付扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。

该模式适用于P C 网站支付、实体店单品或订单支付、媒体广告支付等场景。

3) 微信内网页支付微信内网页支付是用户在微信中打开商户的H5 页面,商户在H5 页面通过调用微信支付提供的JSAPI 接口调起微信支付模块完成支付。

应用场景有:•用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付;•用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付•将商户页面转换成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付4) APP 支付APP 支付又称移动端支付,是商户通过在移动端应用APP 中集成开放SDK 调起微信支付模块完成支付的模式。

5) 普通浏览器网页支付模式正在建设中,敬请期待。

2. 名词解释1) 微信公众平台微信公众平台是微信公众账号申请入口和管理后台。

商户可以在公众平台提交基本资料、业务资料、财务资料申请开通微信支付功能。

平台入口:。

2) 微信开放平台微信开放平台是商户APP 接入微信支付开放接口的申请入口,通过此平台可申请微信APP 支付。

平台入口:。

3) 微信商户平台微信商户平台是微信支付相关的商户功能集合,包括参数配置、支付数据查询与统计、在线退款、代金券或立减优惠运营等功能。

平台入口:。

4) 微信支付系统微信支付系统是指完成微信支付流程中涉及的API 接口、后台业务处理系统、账务系统、回调通知等系统的总称。

5) 商户收银系统商户收银系统即商户的POS 收银系统,是录入商品信息、生成订单、客户支付、打印小票等功能的系统。

微信开发模式api接口文档简介

微信开发模式api接口文档简介

微信开发模式api接口文档简介微信公众平台分为订阅号和服务号,服务号提供9大接口,需要通过微信认证后才能使用这些接口。

认证费用300元。

下面是接口的大致介绍:1. 语音识别:通过语音识别接口,用户发送的语音,将会同时给出语音识别出的文本内容。

2. 客服接口:通过客服接口,公众号可以在用户发送过消息的24小时内,向用户回复消息。

3. OAuth2.0网页授权:通过网页授权接口,公众号可以请求用户授权。

4. 生成带参数二维码:通过该接口,公众号可以获得一系列携带不同参数的二维码,在用户扫描关注公众号后,公众号可以根据参数分析各二维码的效果。

5. 获取用户地理位置:通过该接口,公众号能够获得用户进入公众号会话时的地理位置(需要用户同意)。

6. 获取用户基本信息:通过该接口,公众号可以根据加密后的用户OpenID,获取用户的基础信息,包括头像、昵称、性别、地区。

7. 获取关注者列表:通过该接口,公众号可以获取所有关注者的OpenID。

8. 用户分组接口:通过分组接口,公众号可以在后台为用户移动分组,或创建、修改分组。

9. 上传下载多媒体文件:通过该接口,公众号可以在需要时在微信服务器上传下载多媒体文件。

微信公众平台开发模式对于很多人来说还是很难理解,毕竟是代码问题,这份资料,面对的主要也是有编程经验的。

对于只会编辑模式的人来说。

阅读会有点困难。

我们现在就一起来了解一下吧!1?文本类型息接口获取到的消息格式:这类信息是微信公众平台接收到的最多的消息。

即用户向微信公众帐号发送文本信息。

消息格式为:文本消息的数据字段:ToUserName:开发者微信号(公众账号ID)FromUserName:发送方帐号(微信用户的OPENID,每个微信用户与每个公众账号是唯一的,不同公众账号同个用户OPENID是不同的)CreateTime:消息创建时间MsgType:消息类型(文本消息为text)Content:消息内容MsgId:消息的ID号2?图文类型用户使用图片上传发送消息接口获取到的消息格式:图片消息与文本消息数据不同:MsgType:消息类型为imagePicUrl:图片链接,该图片保存在微信的服务器上,可以通过远程抓取图片程序保存到本地。

微信支付开发文档

微信支付开发文档

微信支付开发文档JSSDK接口调用步骤步骤一:绑定域名先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

备注:登录后可在“开发者中心”查看对应的接口权限。

步骤二:引入JS文件在需要调用JS接口的页面引入如下JS文件,(支持https):/open/js/jweixin-1.0.0.js备注:支持使用 AMD/CMD 标准模块加载方法加载所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。

debug: true,appId:"wx971a7d2537b5fad3",timestamp:1429064159,nonceStr:"fc49306d97602c8ed1be1dfbf0835ead", //参数中S大写signature:"ea11d1840ef6859386243bd1d00185d16b729f1c",jsApiList: ['checkJsApi','onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','hideMenuItems','showMenuItems','hideAllNonBaseMenuItem','showAllNonBaseMenuItem','translateVoice','startRecord','stopRecord','onRecordEnd','playVoice','pauseVoice','stopVoice','uploadVoice','downloadVoice','chooseImage','previewImage','uploadImage','downloadImage','getNetworkType','openLocation','getLocation','hideOptionMenu','showOptionMenu','closeWindow','scanQRCode','chooseWXPay','openProductSpecificView','addCard','chooseCard','openCard']});其中签名signature由jsapi_ticket、noncestr、timestamp、url这4个参数生成。

微信支付开发教程

微信支付开发教程

微信支付开发教程微信支付是一种便捷的在线支付方式,通过微信支付,用户可以在微信平台上完成购物、转账、充值等一系列支付操作。

接下来,将为您介绍微信支付开发的主要步骤及相关注意事项。

首先,开发微信支付需要先进行商户注册和认证。

商户需要在微信支付官方网站上注册自己的商户号,并提交相关证明材料进行认证。

认证通过后,商户就可以获得自己的公众号和支付接口权限。

其次,为了使用微信支付接口,商户需要在自己的应用程序中集成微信支付SDK。

微信支付SDK是微信提供的一套开发工具,包含了支付接口的相关方法和功能。

商户可以根据自己的需求选择相应的集成方式,例如使用Java、Python、PHP等语言进行开发,或使用提供的示例代码进行参考。

在集成SDK之后,商户需要根据自己的业务逻辑调用相应的支付接口。

微信支付接口包括统一下单、查询订单、关闭订单、申请退款、查询退款等多个接口,商户可以根据自己的需求选择合适的接口进行调用。

在调用支付接口之前,商户还需要进行签名处理。

签名是保证支付接口的安全性的重要环节,商户需要对请求参数进行签名处理,并将签名结果附加到请求参数中,以确保数据的完整性和安全性。

除了支付接口之外,商户还可以利用微信支付提供的查询接口获取订单的支付状态和交易信息,用于后续的业务处理和数据分析。

最后,为了保证支付操作的安全性,商户还需要注意支付接口的回调处理。

微信支付会在支付成功或失败后,将相应的结果通过HTTP POST方式发送给商户指定的回调URL。

商户需要在自己的服务器上实现相应的回调处理逻辑,以完成订单的最终状态更新和通知用户结果。

综上所述,微信支付开发需要商户进行商户注册和认证、集成微信支付SDK、调用支付接口、进行签名处理、处理支付回调等一系列步骤。

商户在进行开发时,需要注意支付接口的安全性和回调处理的完整性,以确保用户的支付操作能够顺利进行。

微信api接口文档微信支付APP支付(Android)接口文档V1.7

微信api接口文档微信支付APP支付(Android)接口文档V1.7

微信api接口文档微信支付APP支付(Android)接口文档V1.7APP支付接口文档V1.7版本说明版本V1.5V1.6V1.7更改说明公众号1.5版本升级更新实例代码成实际可运行更新订单号重复说明更新时间2014-04-152014-04-292014-06-181.微信支付简介1.1功能简介................................................................................................... .. (4)1.2平台帐号注册................................................................................................... (5)1.2.1申请流程指引图................................................................................................... (5)1.2.2申请接入步骤详细说明 (5)1.3支付账户................................................................................................... ..........................62.微信APP支付接入................................................................................................... .. (8)2.1系统架构................................................................................................... .. (8)2.2基本交互................................................................................................... .. (8)2.3支付功能开发介绍................................................................................................... ..........93.接口介绍................................................................................................... .. (10)3.1获取 (10)3.2生成预支付订单................................................................................................... (11)3.3订单详情(package)扩展字符串定义 (12)3.4支付签名(app_signature)生成方法 (14)3.5添加prepayid再次签名..................................................................................................153.6APP端开发说明................................................................................................... . (16)3.6.1初始化设置................................................................................................... (16)3.6.2注册您的APPID........................................................................................... .. (16)3.6.3用服务器返回的参数调起支说明................................................................................................... (18)4.1通知接口简介................................................................................................... . (18)4.2补单机制................................................................................................... (18)4.3通知接口参数................................................................................................... . (18)4.4后台通知结果返回................................................................................................... .. (21)4.5后台通知签名方式................................................................................................... .. (21)5.API接口说明................................................................................................... (23)5.1API接口简介................................................................................................... (23)5.2API列表................................................................................................... .. (23)5.2.1发货通知delivernotify.................................................................................. .. (23)5.2.2订单查询orderquery.................................................................................... ........256.常见问题和注意事项................................................................................................... . (27)6.1帮助SDK............................................................................................... (27)6.2常见基本概念疑惑................................................................................................... .. (28)6.3常见错误现象及解决方法 (28)6.4常见注意事项................................................................................................... . (29)6.5最新接口文档下载................................................................................................... .. (29)6.6联系我们................................................................................................... (30)1.微信支付简介1.1功能简介微信APP支付,是基于微信客户端提供的支付服务功能。

微信公众号支付接口文档(结算中心-受理机构)v0.0

微信公众号支付接口文档(结算中心-受理机构)v0.0

微信公众号支付接口文档(结算中心-受理机构)讨论目录修改日志 (4)1.微信支付简介 (5)1.1.功能简介 (5)1.2.支付账户 (5)1.3.支付方式 (6)2.支付场景介绍 (6)2.1.网页内支付场景---JS API(网页内)支付接口 (6)2.1.1.交互细节 (8)2.1.2.JSAPI 支付时序图 (9)2.1.4.显示微信安全支付标题 (9)2.2.线下扫码购买场景---Native(原生)支付接口 (10)2.2.1 使用场景 (10)2.2.2.Native(原生)支付URL 定义 (11)3.接口说明 (13)3.1.接口调用规则 (13)3.2.微信Sign 签名生成方法 (14)3.2.1 受理商签名Sign 生成方法 (14)3.3 结算中心签名生成方法 (15)3.4 调用流程 (16)4.API 说明 (17)4.1.统一支付接口 (17)4.2.通用通知接口 (20)4.3.订单查询接口 (22)4.7 关闭订单接口 (24)4.8.退款申请接口 (26)4.9.退款查询接口 (28)4.10.对账单接口 (30)4.12.接口调用上报接口 (30)5.企业红包使用说明 (32)5.1 创建批次企业红包 (32)5.2 提交支付使用企业红包 (32)5.3 查询使用企业红包金额 (33)5.4 企业红包对账单 (33)6. 返回状态码列表 (33)7.错误码列表 (33)8.常见问题和注意事项 (34)8.1.常见基本概念疑惑 (34)8.2.常见错误现象及解决方法 (34)8.3.常见注意事项 (36)修改日志1.微信支付简介1.1.功能简介微信支付,是基于微信客户端提供的支付服务功能。

同时向商户提供销售经营分析、账户和资金管理的功能支持。

用户通过扫描二维码、微信内打开商品页面购买等多种方式调起微信支付模块完成支付。

微信支持公众号内支付,即基于公众号向用户收款,公众号相当于收款的商户。

【微信支付】企业付款开发者文档

【微信支付】企业付款开发者文档

【微信支付】企业付款开发者文档简介企业付款业务是基于微信支付商户平台的资金管理能力,为了协助商户方便地实现企业向个人付款,针对部分有开发能力的商户,提供通过API 完成企业付款的功能。

比如目前的保险行业向客户退保、给付、理赔。

企业付款将使用商户的可用余额,需确保可用余额充足。

查看可用余额、充值、提现请登录商户平台“资金管理”进行操作。

https:///注意:与商户微信支付收款资金并非同一账户,需要单独充值。

接口介绍业务流程 接口 简介付款企业付款用于企业向微信用户个人付款目前支持向指定微信用户的openid 付款。

(获取openid 参见微信公众平台开发者文档: 网页授权获取用户基本信息)接口调用规则:◆ 给同一个实名用户付款,单笔单日限额2W/2W ◆ 不支持给非实名用户打款◆ 一个商户同一日付款总额限额100W◆ 单笔最小金额默认为1元◆ 每个用户每天最多可付款10次,可以在商户平台--API 安全进行设置◆ 给同一个用户付款时间间隔不得低于15秒注意1-当返回错误码为“SYSTEMERROR”时,一定要使用原单号重试,否则可能造成重复支付等资金风险。

注意2-根据监管要求,新申请商户号使用企业付款需要满足两个条件:1、入驻时间超过90天 2、连续正常交易30天。

接口地址接口链接:https:///mmpaymkttransfers/promotion/transfers 是否需要证书请求需要双向证书。

详见证书使用 请求参数字段名变量名必填示例值类型描述商户账号appid mch_appid 是 w x8888888888888888String 微信分配的账号ID (企业号corpid即为此appId ) 商户号mchid 是 1900000109String(32) 微信支付分配的商户号 设备号device_info 否 013467007045764 String(32)微信支付分配的终端设备号随机字符串 nonce_str 是 5K8264ILTKCH16CQ2502SI8ZNM TM67VS String(32)随机字符串,不长于32位 签名 sign是C380BEC2BFD727A4B6845133519F3AD6 String(32) 签名,详见签名算法商户partner_trade 是 10000098201411111234567890 String 商户订单字段名变量名必填示例值类型描述订单号_no 号,需保持唯一性(只能是字母或者数字,不能包含有符号)用户openi d openid 是oxTWIuGaIt6gTKsQRLau2M0yL16EString商户appid下,某用户的openid校验用户姓名选项check_name 是F ORCE_CHECK StringNO_CHECK:不校验真实姓名FORCE_CHECK:强校验真实姓名收款用户姓名re_user_name可选王小王String收款用户真实姓名。

移动应用开发微信支付集成指南

移动应用开发微信支付集成指南

移动应用开发微信支付集成指南移动应用已经成为我们日常生活的一部分,无论是购物、转账还是进行交易,移动支付已经成为了一种普遍的选择。

而微信支付作为最具影响力和普及度的移动支付之一,对于开发人员来说,将其集成到自己的应用中是必不可少的一项任务。

本文将详细介绍如何在移动应用开发中集成微信支付功能。

一、前期准备在开始微信支付功能的集成之前,你需要具备以下的前期准备:1. 微信支付开放平台账号:首先你需要在微信支付开放平台上注册一个账号,以获取相应的开发者权限和秘钥。

2. 移动应用的开发工具:根据你的开发需求,选择适合自己的开发工具,如Android Studio或者Xcode等。

3. 移动应用的开发环境:确保你的开发环境已经搭建好,包括相应的SDK和API等。

二、集成流程微信支付的集成可以分为以下几个步骤:1. 配置开放平台:登录微信支付开放平台,创建移动应用并获取相应的AppID。

2. 引入微信SDK:下载微信支付SDK,将其引入到你的移动应用项目中。

3. 获取微信支付权限:通过AppID和秘钥,获取微信支付权限,并将其配置到你的移动应用中。

4. 创建支付请求:根据你的业务需求,构建相应的支付请求参数,包括商品信息、订单号、价格等。

5. 发起支付请求:调用相应的API接口,向微信支付平台发起支付请求。

6. 处理支付结果:根据微信支付平台的响应结果,处理支付成功或失败的情况。

7. 完善支付流程:根据你的业务需求,完善支付流程,如订单状态的更新、支付成功的回调通知等。

三、注意事项在进行微信支付功能集成的过程中,有一些需要注意的事项:1. 安全性:保护用户的支付信息是至关重要的,确保你的应用中的支付操作都是在安全的网络环境下进行,并且及时更新支付SDK和相关安全补丁。

2. 异常处理:支付过程中可能会出现各种异常情况,例如网络延迟、支付超时等。

为了保证用户体验,记得正确处理这些异常情况,并提醒用户重新尝试支付。

微信支付开发--H5支付

微信支付开发--H5支付

微信⽀付开发--H5⽀付H5⽀付H5⽀付是指商户在微信客户端外的移动端⽹页展⽰商品或服务,⽤户在前述页⾯确认使⽤微信⽀付时,商户发起本服务呼起微信客户端进⾏⽀付。

主要⽤于触屏版的⼿机浏览器请求微信⽀付的场景。

可以⽅便的从外部浏览器唤起微信⽀付。

提醒:H5⽀付不建议在APP端使⽤,如需要在APP中使⽤微信⽀付,请接APP⽀付,⽂档详见。

申请⼊⼝:登录商户平台-->产品中⼼-->我的产品-->⽀付产品-->H5⽀付H5⽀付是基于公众号基础开发的⼀种⾮微信内浏览器⽀付⽅式(需要单独申请⽀付权限),可以满⾜在微信外的⼿机H5页⾯进⾏微信⽀付的需求。

测试地址效果图流程图⼆、商品信息准备主要是先定义商品的名称及价格,以及交易号。

代码如下。

include_once("../WxPayPubHelper/WxPayPubHelper.php");//使⽤统⼀⽀付接⼝$unifiedOrder = new UnifiedOrder_pub();//设置统⼀⽀付接⼝参数//设置必填参数//appid已填,商户⽆需重复填写//mch_id已填,商户⽆需重复填写//noncestr已填,商户⽆需重复填写//spbill_create_ip已填,商户⽆需重复填写//sign已填,商户⽆需重复填写$unifiedOrder->setParameter("body","H5⽀付测试");//商品描述$timeStamp = time();$out_trade_no = WxPayConf_pub::APPID."$timeStamp";$unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号$unifiedOrder->setParameter("total_fee","1");//总⾦额//$unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址$unifiedOrder->setParameter("trade_type","WAP");//交易类型//⾮必填参数,商户可根据实际情况选填$unifiedOrder->setParameter("device_info","100001");//设备号上述参数最终封装成如下类似XML参数<xml><body><![CDATA[H5⽀付测试]]></body><out_trade_no><![CDATA[100001_1433009089]]></out_trade_no><total_fee>1</total_fee>//<notify_url><![CDATA[/weixin/demo/notify_url.php]]></notify_url><trade_type><![CDATA[WAP]]></trade_type><device_info>100001</device_info><appid><![CDATA[wx1d065b0628e21103]]></appid><mch_id>1237905502</mch_id><spbill_create_ip><![CDATA[61.129.47.79]]></spbill_create_ip><nonce_str><![CDATA[gwpdlnn0zlfih21gipjj5z53i7vea8e8]]></nonce_str><sign><![CDATA[C5A1E210F9B4402D8254F731882F41AC]]></sign></xml>2. 调⽤统⼀⽀付请求将上述XML发送给统⼀⽀付接⼝https:///pay/unifiedorder得到如下XML数据<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg><appid><![CDATA[wx1d065b0628e21103]]></appid><mch_id><![CDATA[1237905502]]></mch_id><device_info><![CDATA[100001]]></device_info><nonce_str><![CDATA[6u8ovTtFupTagsiY]]></nonce_str><sign><![CDATA[E84D8BC2331766DD685591F908367FF1]]></sign><result_code><![CDATA[SUCCESS]]></result_code><prepay_id><![CDATA[wx20150531020450bb586eb2f70717331240]]></prepay_id><trade_type><![CDATA[WAP]]></trade_type></xml>这样就得到⼀个prepayid⼆、DeepLink商户server调⽤统⼀下单接⼝请求订单,api参见公共api【统⼀下单】(接⼝中trade_type需定义为WAP),微信会返回给商户prepayid,商户按固定格式⽣成deeplink,通过⽤户点击deeplink来调起微信⽀付。

开发微信支付-公众号支付微信浏览器支付(JSAPI)

开发微信支付-公众号支付微信浏览器支付(JSAPI)

开发微信⽀付-公众号⽀付微信浏览器⽀付(JSAPI)写这篇⽂章的⽬的有2个,⼀是⾃⼰的项⽬刚开发完微信⽀付功能,趁热回个炉温习⼀下,⼆也是帮助像我这样对微信⽀付不熟悉,反复看了多天⽂档还是⼀知半解,原理都没摸清,更不要说实现了。

本以为⽹上的微信开发教程会和“java的重写与重载”⼀样铺天盖地,可搜出来的结果,要么是PHP的教程(微信⽀付官⽹推荐就是PHP),要么星星点点就那么⼏篇,想对⽐的看看思路都成问题,官⽹下载的JAVA-SDK-DEMO也恕我技术低下,看的糊⾥糊涂。

等⾃⼰开发完的那⼀刻,才豁然开朗,才知道⾛通完⽀付这条路的过程⾛了多少弯路,我是第⼀次接触⽀付,想必⼤部分能看这篇⽂章的兄弟也是被微信官⽅⽂档给绕的出不来才出此下策,内容有误请指正。

好了这回真正的正题了:步骤⼀:获取微信⽀付四⼤参数⾸先要想⽀持微信⽀付,必须拥有两个账号:①微信公众已认证的服务号,并且需要开通微信⽀付该能(必须是企业才有资格申请,请你找你家产品去申请吧),②微信商户平台账号;这两个账号⼀个不能少。

此处已默认你已有上两个账号。

此处是账号模板,请参考:微信公众平台:账户:con*******om 登录密码 ******公众APPID:wx15*********a8APPSECEPT : c210***************892d7微信商户平台:账户:149**********6742 登录密码:******商户ID:14******42API密钥:5d5************b35b其中⽐较不好找的是商户的API密钥:在商户平台的账户中⼼下:需要⽤户⾃⾏下载证书及安装,(略)⾄此我们需要的APPID(appid),APPSECEPT(appsecret),商户ID(mch_id),API密钥(paternerKey),四个重要参数已拿到,括号中是我们代码所⽤的变量名称请提前熟悉。

步骤⼆:平台配置1.配置⽀付⽬录:商户平台:点击添加2.配置授权域名:微信公众平台:⽀付过程需要获取⽤户openid,必须经过⽹页授权配置才可以,要不然获取不到openid。

springboot集成微信支付APIv3接口实现小程序和公众号支付

springboot集成微信支付APIv3接口实现小程序和公众号支付

springboot集成微信⽀付APIv3接⼝实现⼩程序和公众号⽀付前⾔:⽹上有很多⼤佬们集成的综合⽀付包,做相应配置也很⽅便,我这个是基于微信官⽅⽂档流程做的直连模式,实现公众号和⼩程序⽀付(需要代码中正确使⽤appid),不得不吐槽微信的⽂档还是⼀如既往的。

1.引⼊maven依赖<dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-apache-httpclient</artifactId><version>0.3.0</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.5</version></dependency>2.yaml配置wx:pay:mchId: 16126xxxx #微信⽀付商户号mchSerialNo: 60B04XXXXXXXXX #证书序列号v3Secret: 5ovxxxxxxxxxxxxxxxx #密钥p12Path:/usr/local/apiclient_cert.p12 #证书绝对路径地址keyPass:16126xxxx #证书密码默认微信商户号privateKey: | #这个符号⼀定注意(回车键旁边) 是yaml中保持⽂本换⾏读取的写法防⽌证书读出来加载失败-----BEGIN PRIVATE KEY-----xxxx-----END PRIVATE KEY----- #私钥certificate: |-----BEGIN CERTIFICATE-----xxxx-----END CERTIFICATE----- #平台证书特别提⽰:3.读取yaml内容的Properties类@Data@Component@ConfigurationProperties(prefix = "wx.pay")public class WeChatPayProperties {/*** 商户id*/private String mchId;/*** 商户证书序列号*/private String mchSerialNo;/*** apiV3密钥*/private String v3Secret;/*** p12证书⽂件位置*/private String p12Path;/*** 证书密码*/private String keyPass;/*** 商户私钥*/private String privateKey;/*** 微信⽀付平台证书 jar包⽣产的*/private String certificate;}4.启动配置类@Configurationpublic class WxPayV3Config {@AutowiredWeChatPayProperties weChatPayProperties;@Beanpublic CloseableHttpClient wxV3Init() {PrivateKey merchantPrivateKey = PemUtil.loadPrivateKey(weChatPayProperties.getPrivateKey());X509Certificate wechatPayCertificate = PemUtil.loadCertificate(new ByteArrayInputStream(weChatPayProperties.getCertificate().getBytes(StandardCharsets.UTF_8)));ArrayList<X509Certificate> listCertificates = new ArrayList<>();listCertificates.add(wechatPayCertificate);return WechatPayHttpClientBuilder.create().withMerchant(weChatPayProperties.getMchId(), weChatPayProperties.getMchSerialNo(), merchantPrivateKey).withWechatPay(listCertificates).build();}}5.下单api@Slf4j@Componentpublic class WeChatPayApi {@AutowiredWeChatPayProperties weChatPayProperties;@AutowiredWeChatAppletProperties weChatAppletProperties;@AutowiredCloseableHttpClient httpClient;/*** 微信⼩程序下单的请求地址*/private static final String applet_req_url = "https:///v3/pay/transactions/jsapi";/*** 创建微信⼩程序订单** @param orderNo 订单号* @param amount 单位分* @param openid ⼩程序的openid* @param goodsName 订单名称* @param notify 通知地址* @throws IOException*/public String createWxAppletOrder(String orderNo, Integer amount, String openid, String goodsName, String notify) throws IOException {// 请求body参数 JSONObject paramObject = new JSONObject();JSONObject amountObject = new JSONObject();amountObject.put("total", amount);amountObject.put("currency", "CNY");paramObject.put("amount", amountObject);paramObject.put("mchid", weChatPayProperties.getMchId());paramObject.put("description", goodsName);paramObject.put("notify_url", notify);JSONObject payerObject = new JSONObject();payerObject.put("openid", openid);paramObject.put("payer", payerObject);paramObject.put("out_trade_no", orderNo);paramObject.put("appid", "⼩程序appid");HttpPost httpPost = new HttpPost(applet_req_url);httpPost.setHeader("Accept", "application/json");StringEntity entity = new StringEntity(paramObject.toJSONString(), "utf-8");entity.setContentType("application/json");("[微信下单请求参数列表]=" + paramObject);httpPost.setEntity(entity);//完成签名并执⾏请求CloseableHttpResponse response = httpClient.execute(httpPost);Map<String, Object> resMap = new HashMap<>();try {int statusCode = response.getStatusLine().getStatusCode();Assert.isTrue(statusCode == 200, "微信下单请求失败");JSONObject jsonObject = JSON.parseObject(EntityUtils.toString(response.getEntity()));String prepayId = jsonObject.getString("prepay_id");Assert.isTrue(StringUtils.isNotBlank(prepayId), "下单获取参数失败");String timeStamp = String.valueOf(System.currentTimeMillis() / 1000);String nonceStr = RandomUtil.randomString(32).toUpperCase();String packagep = "prepay_id=" + prepayId;SortedMap<Object, Object> params = new TreeMap<>();params.put("appId", weChatAppletProperties.getAppId());params.put("timeStamp", timeStamp);params.put("nonceStr", nonceStr);params.put("package", packagep);params.put("signType", "RSA");resMap.put("appId", "⼩程序appid");resMap.put("timeStamp", timeStamp);resMap.put("nonceStr", nonceStr);resMap.put("package", packagep);resMap.put("signType", "RSA");resMap.put("paySign", WechatPayUtils.createSign(params, weChatPayProperties.getP12Path(), weChatPayProperties.getKeyPass())); ("[微信⽀付] ⽀付参数:" + JSON.toJSONString(resMap));} catch (Exception e) {throw new BusinessException(e.getMessage());} finally {response.close();}return JSON.toJSONString(resMap);}6.微信paySign签名⽣成 WechatPayUtils类,KeyPairFactory类,WechatRSAUtils类public class WechatPayUtils {/*** sign签名** @param map* @return*/public static String createSign(SortedMap<Object, Object> map, String certPath, String keyPass) throws Exception {String signatureStr = Stream.of(String.valueOf(map.get("appId")), String.valueOf(map.get("timeStamp")), String.valueOf(map.get("nonceStr")), String.valueOf(map.get("package"))).collect(Collectors.joining("\n", "", "\n"));KeyPair keyPair = KeyPairFactory.createPKCS12(certPath, "Tenpay Certificate", keyPass);return WechatRSAUtils.payRequestSign(signatureStr, keyPair);}public class KeyPairFactory {private static KeyStore store;private static final Object lock = new Object();/*** 获取公私钥.** @param keyPath the key path* @param keyAlias the key alias* @param keyPass password* @return the key pair*/public static KeyPair createPKCS12(String keyPath, String keyAlias, String keyPass) throws Exception {// ClassPathResource resource = new ClassPathResource(keyPath); //喜欢⽤相对路径的同学使⽤这⼀⾏PathResource resource = new PathResource(keyPath);char[] pem = keyPass.toCharArray();synchronized (lock) {if (store == null) {synchronized (lock) {store = KeyStore.getInstance("PKCS12");store.load(resource.getInputStream(), pem);}}}X509Certificate certificate = (X509Certificate) store.getCertificate(keyAlias);certificate.checkValidity();// 证书的序列号也有⽤String serialNumber = certificate.getSerialNumber().toString(16).toUpperCase();// 证书的公钥PublicKey publicKey = certificate.getPublicKey();// 证书的私钥PrivateKey storeKey = (PrivateKey) store.getKey(keyAlias, pem);return new KeyPair(publicKey, storeKey);}}public class WechatRSAUtils {/*** ⽣成⽀付签名** @param signStr* @param keyPair* @return**/@SneakyThrowspublic static String payRequestSign(String signStr, KeyPair keyPair) {Signature sign = Signature.getInstance("SHA256withRSA");sign.initSign(keyPair.getPrivate());sign.update(signStr.getBytes(StandardCharsets.UTF_8));return Base64Utils.encodeToString(sign.sign());}}。

微信支付开发教程附demo链接

微信支付开发教程附demo链接

微信支付开发教程附demo链接
1. 使用网页授权接口
使用网页授权接口获取用户的基本信息。

【微信公众号】OAuth2.0授权.pdf点击下载
2. 使用共享收货地址控件
使用共享收货地址控件,获取用户在微信的收货地址。

【微信公众号支付】收货地址共享接口文档V1.6.pdf点击下载
3. 使用公众号发起支付请求
使用JS API在微信的网页中发起支付请求,详细方法见文档中有关JS API的章节。

使用Native API发起支付请求,详细方法文档中有关Native API的章节。

微信支付接口文档及demo(公众账号).zip点击下载
4. 接入客服维权系统
所有公众号商户必须接入客服维权系统。

接入客服维权系统后,用户可以通过自定义菜单中“维权”菜单,选择订单,向微信发起维权请求。

微信将会把维权信息通过payfeedback_ url通知到商户,商户必须在规定时间内处理维权请求。

【微信公众号支付】用户维权系统及接口说明V1.6.pdf点击下载
5. 在第三方应用上发起支付请求
在iOS平台和android平台上的第三方应用,通过微信支付SDK发起支付请求。

微信支付接口文档及demo(APP).zip点击下载
6. 微信支付退款&对账
使用微信支付退款和对账功能,帮助轻松实现退款和对账。

微信支付(退款&对账接口)文档. zip点击下载。

微信支付接口说明书

微信支付接口说明书

微信支付说明书V1.0 2016年04月修订页1.1.接口说明通过http post方式交互,请求报文为json格式,请求报文由商户号、交易命令、交易信息、signature(签名)组成,交易信息的内容需加签,整个交易信息需要进行加密,返回格式为json。

1.2.数据流程客户端处理流程1.拼装报文,对msg字段加签放入signature字段中2.对拼装后报文加密并发送3.接收服务器响应,解密4.对于接收的报文验证签名。

1.3.安全说明报文会对敏感字段(msg)进行MD5WITHRSA签名,并对整个报文RSA加密,加密说明见相关demo。

1.4.数据类型规则1.4.1.出现次数1)0..1——数据元值域可填,且出现一次,节点中必须出现,可空;2)0..n——数据元值域可填,且可出现多次;3) 1..1——数据元值域必填,且出现一次;4) 1..n——数据元值域必填,且可出现多次1.4.2.节点数据类型1)s=字符类型,例:s..60 字符串60个长度2)n=数值类型,例:n..18,4 数值包含小数点共18位,其中包含4位小数3)date=日期类型,全文要求日期格式为 yyyyMMddHHmmss1.4.3.相关数据详解1)时间字段:时间字段如无特殊说明,则格式为yyyyMMddHHmmss1.5.交易码列表1.5.1.基础功能注意:2.3.4.5 接口全部按照加密传输;加密格式为:{"data":"加密信息","signature":"签名"}加密信息:{"msg":"{"参数":"",......}"}1.6.接口信息说明1.6.1.注册商户接口请求报文:备注:普通HTTP POST交互,详见demo;推广码和下放商户标识必须填写下放资料里面对应的信息;响应报文1.6.2.下载密钥接口(tb_DownLoadKey) 请求报文响应报文1.6.3.验卡接口(tb_verifyInfo)请求报文响应报文1.6.4.二维码支付接口(tb_WeixinPay) 请求报文响应报文1.6.5.订单状态查询接口(tb_OrderConfirm) 请求报文响应报文1.6.6.交易回调通知返回信息注意:发送方式普通POST表单,request 接收;1.6.7.同步商户签约费率(xy_ChangeRate)请求报文响应报文1.7.返回码及描述1.8.对账文件1.8.1.对账文件说明服务器每日9:00—10:00生成前一日的对账文件,对账文件采用txt 的格式记录。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

山海微信接口开发文档1. 商户发给网关接口的参数参数名称参数含义可空参数说明customerid 商户ID 否商户在网关系统上的商户号sdcustomno 商户流水号否订单在商户系统中的流水号orderAmount 支付金额否订单支付金额;单位:分(人民币)cardno 支付方式否固定值32noticeurl 通知商户Url 否在网关返回信息时通知商户的地址,该地址不能带任何参数,否则异步通知会不成功backurl 回调Url 否在网关返回信息时回调商户的地址,该地址不能带任何参数sign md5签名否发送给网关的签名字符串,为以上参数加商户在网关系秘钥(key)一起按照顺序MD5加密并转为大写的字符串mark商户自定义信息否商户自定义信息,不能包含中文字符,因为可能编码不一致导致MD5加密结果不一致商户发给网关接口的url范例:website?customerid=customerid&sdcustomno=sdcustomno&orderAmount=orderAmount&cardno=cardno&noticeurl=noticeurl &backurl=backurl&sign=sign&mark=mark注意:(1)website为网关的接受信息网址:/gateway/weixin/weixinpay.asp(2)sign加密时参数要按照顺序,否则加密后无法通过验证,范例:Md5str="customerid="&customerid&"&sdcustomno="&sdcustomno&"&orderAmount="&orderAmount&"&cardno="&cardn o&"&noticeurl=" &noticeurl&"&backurl="&backurl&key示例:(key值为:2s52e2e41s5e1sf2sf5e)Md5str="customerid=123456&sdcustomno=2014060121365446&orderAmount=100&cardno=32&noticeurl=http://xxx.x xx/weixinNotify&backurl=http:// xxx.xxx/payMS/weixinNotify2s52e2e41s5e1sf2sf5e"key 值请联系商务人员获取2. 网关接口返回(noticeurl)给商户的参数参数名称参数含义参数说明state 订单充值状态 1.充值成功 2.充值失败customerid 商户ID 商户注册的时候,网关自动分配的商户IDsd51no 订单在网关的订单号该订单在网关系统的订单号sdcustomno 商户订单号该订单在商户系统的流水号ordermoney 订单实际金额商户订单实际金额单位:(元)cardno 支付类型支付类型,为固定值 32mark 商户自定义信息未启用暂时返回空值sign md5签名字符串发送给商户的签名字符串resign md5二次签名字符串发送给商户的签名字符串des 支付备注描述订单支付成功或失败的系统备注网关发给商户的通知url范例:website?state={state}&customerid={customerid}&sd51no={sd51no}&sdcustomno={sdcustomno}&ordermoney={orde rmoney}&cardno={cardno}&mark={mark}&sign={sign}& resign={resign}&des={des}参数示例:website?state=1&customerid=132456&sd51no=6565565565&sdcustomno=53111111111111&ordermoney=100&cardno=32 12312121212121&mark=51cps&sign=1s31se2e1e2w3132w1&des=aa注:(1).{参数n}为参数n的值(2). website为商户接受通知(回调)地址,对应商户发送给网关Url中的noticeurl参数(3). sign为customerid={customerid}&sd51no={sd51no}&sdcustomno={sdcustomno}&mark={mark}&key={key}进行MD5加密并转为大写的字符串,key为商户在网关系统的密钥示例:"customerid=123456&sd51no=654311213214&sdcustomno=54156413215456&mark=weixin&key=2df5s2s" (4). resign为sign={sign}&customerid={customerid}&ordermoney={ordermoney}&sd51no={sd51no}&state={state} &key={key}进行MD5加密并转为大写的字符串,key为商户在网关系统的密钥示例:"sign=第一次加密结果&customerid=123456&ordermoney=100&sd51no=654311213214&state=1&key=2df5s2s"1.商户在接受到网关通知时,应该打印出<result>1</result>标签,以供接口程序抓取信息,以便于我们获取是否通知成功的信息,否则订单会显示没有通知商户。

3.支付订单查询接口商户系统在没有收到山海网关异步通知的情况下,可以通过此接查询接口查询商户系统订单状态。

请求方式: POST/GET 户统商系–>山海网关接口地址: /gateway/zx_orderquery.asp提交参数列表字段名变量名类型说明可空商户ID customerid String 商户注册的时候,山海网关自动分配的商户ID 否商户订单号sdcustomno String 该订单在商户系统的流水号否商户自定义信息mark String 商户自定义信息,注意:不能包含中文字符,因为可能编码不一致,导致MD5加密结果不一致是MD5签名sign String customerid="&customerid&"&sdcustomno="&sdcustomno&"&mark="&mark&"&key="&key否返回参数列表(调用订单查询成功,返回的参数)字段名变量名类型说明可空订单充值状态state String(1)0:订单正在处理中1:订单充值成功2:订单充值失败N山海订单号sd51no String 该订单在山海网关系统的订单号N商户流水号sdcustomno String 商户流水号N订单实际金额ordermoney Float 商户订单实际金额单位:(元)NY 商户自定义信息mark String 商户自定义信息,山海支付网关查询返回结果的时候原样返回调用订单查询成功,返回的例子:<?xml version="1.0" encoding="GB2312" ?><fill version="1.0"><items><item name="state" value="1" /><item name="sd51no" value="51ka200909221133271515034815613" /><item name="sdcustomno" value="00909221133271515034815613" /><item name="ordermoney" value="0.01" /><item name="mark" value="shanhai" /></items></fill>返回参数列表(调用订单查询失败,返回参数)字段名变量名类型说明可空订单查询状态state String(1)0:订单查询失败N 错误代码errcode String(4)错误代码N 错误信息errmsg String 错误信息N 商户自定义信息mark String 商户自定义信息,原样返回Y 调用订单查询败失,返回的例子:<?xml version="1.0" encoding="GB2312" ?><fill version="1.0"><items><item name="state" value="0" /><item name="errcode" value="1000" /><item name="errmsg" value="参数不完整" /><item name="mark" value="shanhai" /></items></fill>接口注意事项此种方式查询订单状态是商户可选可不选,建议在山海网关没有异步通知订单结果的情况下使用(注意:此查询接口只能查询商户在当前3天以内的订单结果)。

相关文档
最新文档