当前位置:文档之家› 微信JS SDK 接口调用详解

微信JS SDK 接口调用详解

微信JS SDK 接口调用详解
微信JS SDK 接口调用详解

微信JS SDK 调用详解

概述

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。

通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项。

使用说明

在使用微信JS-SDK对应的JS接口前,需确保公众号已获得使用对应JS接口的权限,可登录微信公众平台进入“开发者中心”查看对应的接口权限。

注意:所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”》“功能设置”里填写“JS接口安全域名”。

步骤一:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):

https://www.doczj.com/doc/8211467317.html,/open/js/jweixin-1.0.0.js

备注:支持使用AMD/CMD 标准模块加载方法加载

步骤二:通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用)。

wx.config({

debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert 出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

appId: '', // 必填,公众号的唯一标识

timestamp: , // 必填,生成签名的时间戳

nonceStr: '', // 必填,生成签名的随机串

signature: '',// 必填,签名,见附录1

jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2

});

步骤三:通过ready接口处理成功验证

wx.ready(function(){

// config信息验证后会执行ready方法,所有接口调用都必须在config 接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。});

步骤四:通过error接口处理失败验证

wx.error(function(res){

// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

});

接口调用说明

所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数:

1. success:接口调用成功时执行的回调函数。

2. fail:接口调用失败时执行的回调函数。

3. complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。

4. cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会

用到。

5. trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中

的相关接口。

以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性errMsg,其值格式如下:

1. 调用成功时:"xxx:ok" ,其中xxx为调用的接口名

2. 用户取消时:"xxx:cancel",其中xxx为调用的接口名

3. 调用失败时:其值为具体错误信息

基础接口

判断当前客户端版本是否支持指定JS接口

wx.checkJsApi({

jsApiList: ['chooseImage'] // 需要检测的JS接口列表,所有JS接口列表见附录2,

success: function(res) {

// 以键值对的形式返回,可用的api值true,不可用为false

// 如:

{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}

});

备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口,第一期开放的接口均可不使用checkJsApi来检测。

分享接口

请注意不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限,详细规则请查看:朋友圈管理常见问题。

获取“分享到朋友圈”按钮点击状态及自定义分享内容接口

wx.onMenuShareTimeline({

title: '', // 分享标题

link: '', // 分享链接

imgUrl: '', // 分享图标

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

获取“分享给朋友”按钮点击状态及自定义分享内容接口

wx.onMenuShareAppMessage({

title: '', // 分享标题

desc: '', // 分享描述

link: '', // 分享链接

imgUrl: '', // 分享图标

type: '', // 分享类型,music、video或link,不填默认为link

dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

获取“分享到QQ”按钮点击状态及自定义分享内容接口

wx.onMenuShareQQ({

title: '', // 分享标题

desc: '', // 分享描述

link: '', // 分享链接

imgUrl: '' // 分享图标

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口

wx.onMenuShareWeibo({

title: '', // 分享标题

desc: '', // 分享描述

link: '', // 分享链接

imgUrl: '' // 分享图标

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

图像接口

拍照或从手机相册中选图接口

wx.chooseImage({

success: function (res) {

var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片

}

});

预览图片接口

wx.previewImage({

current: '', // 当前显示的图片链接

urls: [] // 需要预览的图片链接列表

});

上传图片接口

wx.uploadImage({

localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

success: function (res) {

var serverId = res.serverId; // 返回图片的服务器端ID

}

});

备注:可用微信下载多媒体文件接口下载上传的图片,此处获得的serverId 即media_id,参考文档../12/58bfcfabbd501c7cd77c19bd9cfa8354.html

下载图片接口

wx.downloadImage({

serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

success: function (res) {

var localId = res.localId; // 返回图片下载后的本地ID

}

});

音频接口

开始录音接口

wx.startRecord();

停止录音接口

wx.stopRecord({

success: function (res) {

var localId = res.localId;

}

});

监听录音自动停止接口

wx.onVoiceRecordEnd({

// 录音时间超过一分钟没有停止的时候会执行 complete 回调

complete: function (res) {

var localId = res.localId;

}

});

播放语音接口

wx.playVoice({

localId: '' // 需要播放的音频的本地ID,由stopRecord接口获得});

暂停播放接口

wx.pauseVoice({

localId: '' // 需要暂停的音频的本地ID,由stopRecord接口获得});

停止播放接口

wx.stopVoice({

localId: '' // 需要停止的音频的本地ID,由stopRecord接口获得});

监听语音播放完毕接口

wx.onVoicePlayEnd({

serverId: '', // 需要下载的音频的服务器端ID,由uploadVoice接口获得

success: function (res) {

var localId = res.localId; // 返回音频的本地ID

}

});

上传语音接口

wx.uploadVoice({

localId: '', // 需要上传的音频的本地ID,由stopRecord接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

success: function (res) {

var serverId = res.serverId; // 返回音频的服务器端ID

}

});

备注:可用微信下载多媒体文件接口下载上传的语音,此处获得的serverId 即media_id,参考文档../12/58bfcfabbd501c7cd77c19bd9cfa8354.html

下载语音接口

wx.downloadVoice({

serverId: '', // 需要下载的音频的服务器端ID,由uploadVoice接口获得

isShowProgressTips: 1// 默认为1,显示进度提示

success: function (res) {

var localId = res.localId; // 返回音频的本地ID

}

});

智能接口

识别音频并返回识别结果接口

wx.translateVoice({

localId: '', // 需要识别的音频的本地Id,由录音相关接口获得

isShowProgressTips: 1, // 默认为1,显示进度提示

success: function (res) {

alert(res.translateResult); // 语音识别的结果

}

});

设备信息

获取网络状态接口

wx.getNetworkType({

success: function (res) {

var networkType = https://www.doczj.com/doc/8211467317.html,workType; // 返回网络类型2g,3g,4g,wifi

}

});

地理位置

使用微信内置地图查看位置接口

wx.openLocation({

latitude: 0, // 纬度,浮点数,范围为90 ~ -90

longitude: 0, // 经度,浮点数,范围为180 ~ -180。

name: '', // 位置名

address: '', // 地址详情说明

scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大

infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转

});

获取地理位置接口

wx.getLocation({

timestamp: 0, // 位置签名时间戳,仅当需要兼容6.0.2版本之前时提供 nonceStr: '', // 位置签名随机串,仅当需要兼容6.0.2版本之前时提供

addrSign: '', // 位置签名,仅当需要兼容6.0.2版本之前时提供,详见附录4

success: function (res) {

var longitude = res.longitude; // 纬度,浮点数,范围为90 ~ -90 var latitude = https://www.doczj.com/doc/8211467317.html,titude; // 经度,浮点数,范围为180 ~ -180。 var speed = res.speed; // 速度,以米/每秒计

var accuracy = res.accuracy; // 位置精度

}

});

界面操作

隐藏右上角菜单接口

wx.hideOptionMenu();

显示右上角菜单接口

wx.showOptionMenu();

关闭当前网页窗口接口

wx.closeWindow();

批量隐藏功能按钮接口

wx.hideMenuItems({

menuList: [] // 要隐藏的菜单项,所有menu项见附录3

});

批量显示功能按钮接口

wx.showMenuItems({

menuList: [] // 要显示的菜单项,所有menu项见附录3

});

隐藏所有非基础按钮接口

wx.hideAllNonBaseMenuItem();

显示所有功能按钮接口

wx.showAllNonBaseMenuItem();

微信扫一扫

调起微信扫一扫接口

wx.scanQRCode({

desc: 'scanQRCode desc',

needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,

scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有

success: function (res) {

var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果

}

});

微信小店

跳转微信商品页接口

wx.openProductSpecificView({

productId: '', // 商品id

viewType: '' // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页

});

微信卡券

调起适用于门店的卡券列表并获取用户选择列表

wx.chooseCard({

shopId: '', // 门店Id

cardType: '', // 卡券类型

cardId: '', // 卡券Id

timeStamp: 0, // 卡券签名时间戳

nonceStr: '', // 卡券签名随机串

cardSign: '', // 卡券签名,详见附录6

success: function (res) {

var cardList= res.cardList; // 用户选中的卡券列表信息 }

});

批量添加卡券接口

wx.addCard({

cardList: [{

cardId: '',

cardExt: ''

}], // 需要添加的卡券列表

success: function (res) {

var cardList = res.cardList; // 添加的卡券列表信息

}

});

查看微信卡包中的卡券接口

wx.openCard({

cardList: [{

cardId: '',

code: ''

}]// 需要打开的卡券列表

});

微信支付

发起一个微信支付请求

wx.chooseWXPay({

timestamp: 0, // 支付签名时间戳

noncestr: '', // 支付签名随机串

package: '', // 订单详情扩展字符串,详见附录5

paySign: '', // 支付签名,详见附录5

});

附录1-JS-SDK使用权限签名算法

jsapi_ticket

生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket。

1. 参考以下文档获取access_token(有效期7200秒,开发者必须在自己的

服务全局缓存

access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html

2. 用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket

(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):

https://https://www.doczj.com/doc/8211467317.html,/cgi-bin/ticket/getticket?access_token=ACCES S_TOKEN&type=jsapi

成功返回如下JSON:

{

"errcode":0,

"errmsg":"ok",

"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0 m9E8NYzWKVZvdVtaUgWvsdshFKA",

"expires_in":7200

}

获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。

签名算法

签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的

jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分)。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=va lue1&key2=value2…)拼接成字符串string1。

这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。

即signature=sha1(string1)。示例:

?noncestr=Wm3WZYTPz0wzccnW

?jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkV Ay_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg

?timestamp=1414587457

?url=https://www.doczj.com/doc/8211467317.html,

步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nb SlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=14 14587457&url=https://www.doczj.com/doc/8211467317.html,

步骤2. 对string1进行sha1签名,得到signature:

f4d90daf4b3bca3078ab155816175ba34c443a7b

注意事项

1. 签名用的noncestr和timestamp必须与wx.config中的nonceStr和

timestamp相同。

2. 签名用的url必须是调用JS接口页面的完整URL。

3. 出于安全考虑,开发者必须在服务器端实现签名的逻辑。

附录2-所有JS接口列表

版本1.0.0接口

?onMenuShareTimeline

?onMenuShareAppMessage

?onMenuShareQQ

?onMenuShareWeibo

?startRecord

?stopRecord

?onVoiceRecordEnd

?playVoice

?pauseVoice

?stopVoice

?onVoicePlayEnd

?uploadVoice

?downloadVoice

?chooseImage

?previewImage

?uploadImage

?downloadImage

?translateVoice

?getNetworkType

?openLocation

?getLocation

?hideOptionMenu

?showOptionMenu

?hideMenuItems

?showMenuItems

?hideAllNonBaseMenuItem

?showAllNonBaseMenuItem

?closeWindow

?scanQRCode

?chooseWXPay

?openProductSpecificView

?addCard

?chooseCard

?openCard

附录3-所有菜单项列表

基本类

?举报: "menuItem:exposeArticle"

?调整字体: "menuItem:setFont"

?日间模式: "menuItem:dayMode"

?夜间模式: "menuItem:nightMode"

?刷新: "menuItem:refresh"

?查看公众号(已添加): "menuItem:profile"

?查看公众号(未添加): "menuItem:addContact"

传播类

?发送给朋友: "menuItem:share:appMessage"

?分享到朋友圈: "menuItem:share:timeline"

?分享到QQ: "menuItem:share:qq"

?分享到Weibo: "menuItem:share:weiboApp"

?收藏: "menuItem:favorite"

?分享到FB: "menuItem:share:facebook"

保护类

?调试: "menuItem:jsDebug"

?编辑标签: "menuItem:editTag"

?删除: "menuItem:delete"

?复制链接: "menuItem:copyUrl"

?原网页: "menuItem:originPage"

?阅读模式: "menuItem:readMode"

?在QQ浏览器中打开: "menuItem:openWithQQBrowser" ?在Safari中打开: "menuItem:openWithSafari"

?邮件: "menuItem:share:email"

?一些特殊公众号: "menuItem:share:brand"

附录4-位置签名生成算法

addrSign的生成规则与JS-SDK权限验证的签名生成规则相同(参考附录1),只是参与签名参数有所不同。参与addrSign的签名参数有:appId、url(当前网页url)、timestamp、noncestr、accesstoken(用户授权凭证,请参照oauth2.0 协议获取)。

附录5-支付扩展字段及签名生成算法

订单详情(package)扩展字符串定义

在商户调起JS API 时,商户需要此时确定该笔订单详情,并将该订单详情通过一定的方式进行组合放入package。JS API 调用后,微信将通过package 的内容生成预支付单。下面将定义package 的所需字段列表以及签名方法。接口需要注意:所有传入参数都是字符串类型!

package 所需字段列表:

支付宝服务合同.doc

甲方:联系地址: 联系人:联系方式: 邮编: 指定网站: 乙方:支付宝(中国)网络技术有限公司联系地址:杭州文三路478号华星时代广场22楼 联系人:联系方式: 第一部分服务与费用(请在需要的服务类型前的方框中打勾)

注:此收款账户只用于收取基本软件服务费或超量软件服务费,不用于其他业务收款服务。 针对批量付款用途的充值渠道另行协商。 第二部分合同条款 第一条定义 除上下文文义另有所指外,本合同中下列用语具有如下含义: 1.1 “支付宝服务”:乙方向甲方所提供的“支付宝”软件系统及其附随提供的款项收 付服务。 1.2 支付宝账户:指甲方在使用本合同约定的“支付宝服务”时,乙方向其提供的唯 一识别编号。甲方可为其设置密码、安装数字证书,并具体使用“支付宝服务” 开展交易,查询交易产生的款项收付账务明细。 1.3 支付宝商家工具接口:指乙方开发的“支付宝”软件系统的软件接口,与甲方网 站的软件系统对接后,即可通过甲方网站使用“支付宝服务”。乙方将依据甲方在 确定本协议时所使用的支付宝账户与支付宝接口绑定;若甲方需在支付宝接口下 添加其他新增支付宝账户,则需通过书面形式或其接口下正在使用的支付宝账户 邮箱向乙方指定系统后台发送申请,由乙方完成相应接口绑定工作,以保证甲方 收款账户的安全性。 1.4 交易流量:指由“支付宝”软件系统所统计的甲方通过其选定服务类型使用“支 付宝服务”所完成交易的单笔金额,是乙方据以收费的依据。在本合同生效前或 有效期内建立,在本合同有效期满后完成的交易,相应的交易金额不计入交易流 量,该交易金额计入双方重新签订的合同约定的交易流量内,双方没有重新签订

支付宝开发规范

范简化版

潘燕

目录 一. 操作规范 (4) 1. 模板及格式化 (4) 2. 代码提交 (4) 3. 垃圾清理 (5) 二. 日志规范 (5) 4. 日志输出 (5) 5. 错误日志 (5) 三. 注释规范 (6) 6. 基本原则 (6) 四. 安全规范 (6) 7. 敏感信息的保护 (6) 8. WEB安全 (6) 五. 通用规范 (7) 9. 金额的使用 (7) 10. 枚举的使用 (7) 11. URL使用 (7) 12. 配置信息的使用 (7) 13. 异常处理 (8) 14. 资源的使用 (8) 15. 本地事务操作 (8) 16. 线程安全处理 (9)

支付宝代码规范(简化版) 一.操作规范 1.模板及格式化 支付宝的开发人员必须保证代码格式化的一致性,否则可能会导致代码冲突,轻微的耗费人力合并代码;严重时可能导致代码丢失,引起bug或者故障。 ●开发人员必须配置ALIPAY的codetemplates.xml代码模板文件。 ●开发人员必须配置ALIPAY的AlipayFormatter.xml代码格式化文件。 ●每次提交代码之前,必须对java代码format。 最新模板文件的下载地址: Eclipse中配置的位置: 2.代码提交 ●为防止冲突,任何时候,代码(及配置文件)提交前,先从CC或者SVN 中更新代码和配置文件,以及早发现不兼容的代码变更和冲突。 ●提交代码(及配置文件)时,如果发生冲突时,先看历史说明,再找相 关人员确认,坚决不允许强制覆盖。 ●每次提交代码之前,必须检查是否有eclipse warning,并FIX所有 的warning(由dalgen等自动生成、不允许人工修改的代码例外)。

支付宝和微信支付流程和技术说明

支付宝和微信支付流程和技术说明

1.1微信支付 1.1.1JSAPI网页支付 JSAPI网页支付即前文说的公众号支付,可在微信公众号、朋友圈、聊天会话中点击页面链接,或者用微信“扫一扫”扫描页面地址二维码在微信中打开商户HTML5页面,在页面内下单完成支付。 1.1.2Native原生支付 Native原生支付即前文说的扫码支付,商户根据微信支付协议格式生成的二维码,用户通过微信“扫一扫”扫描二维码后即进入付款确认界面,输入密码即完成支付。 1.1.3接入方式 微信支付系统是指完成微信支付流程中涉及的API接口、后台业务处理系统、账务系统、回调通知等系统的总称。 微信支付分为公众号支付,App支付,扫码支付(包括PC 网站),刷卡支付(设备扫描用户手

机) 本项目主要适用扫码支付。接通扫码支付流程: 注册公众 帐号申请微信 认证 申请微信 支付 商户平台 进行验证 在线签署 协议 启动设计 和开发 用户扫描商户展示在各种场景的二维码进行支付。 步骤1:商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买。 步骤2:用户使用微信“扫一扫”扫描二维码后,获取商品支付信息,引导用户完成支付。 步骤(3):用户确认支付,输入支付密码。 步骤(4):支付完成后会提示用户支付成功,商户后台得到支付成功的通知,然后进行发货处理。 开发步骤:

商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。用户扫码后,微信支付系统将productid和用户唯一标识(openid)回调商户后台系统(需要设置支付回调URL),商户后台系统根据productid生成支付交易,最后微信支付系统发起用户支付流程。 商户支付回调URL设置指引:进入公众平台-->微信支付-->开发配置-->扫码支付-->修改

支付宝移动支付实现

支付宝接口实现移动支付 一、加密解密 1、网银支付普遍使用的是非对称加密算法,RSA。 二、支付宝开发者平台 1、注册账号(一般是企业账号)--->创建应用--->添加功能--->申请上线--->等待审核 2、配置应用环境:设置密钥(使用密钥生成器生成) 三、Demo演示 1、下载Android版的支付宝SDK:文档中心-->移动支付的SDK 2、运行alipaydemo. 3、添加相关信息: 四、构建自己的Demo 1、主要是PayDemoActivity类的模拟; 2、导入支付宝内部的jar包;

3、最重要的还是相关信息; 4、源码页面 package com.example.paydemoopen; import java.io.UnsupportedEncodingException; import https://www.doczj.com/doc/8211467317.html,.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.Random; import com.alipay.sdk.app.PayTask; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.EditText; import android.widget.Toast; publicclass MainActivity extends Activity{ private EditText name_et,des_et,price_et; // 商户PID:支付宝应用中的商户id publicstaticfinal String PARTNER ="2088221844842500"; // 商户收款账号:支付宝账号 publicstaticfinal String SELLER ="itcast1205@https://www.doczj.com/doc/8211467317.html,"; // 商户私钥,pkcs8格式 publicstaticfinal String RSA_PRIVATE ="MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAOdq0lS/uzkzwXnqJNhHq5vgSiQ3B sfa9fzJtQotYl1mEpyfOq1yfXfn9OXagqgiWpVmwxnzs6pwnjzoMx1nPDFOqechpHFy+1DeafLGRPLx Yiy/r6rl8oBd0EuFeeOeHpcsWuquydkaymgkKwgyTjnCi7TYx9FsiN5WmECxyNO9AgMBAAECgYBvHOg ujvyrI4GTMuxL+GWaa1/N8anMzgJsRMErSM1BASCQmReIbj92EiaRMpCngA80SuoEjPHINViU7/yS8p 2AOXanzriYvap01waxjLa/KEDGjYsffUcQe/SS+xxRoMNvrmPxuQJ4MPowUvdU2OKOtpD/GY6KIGdVv RQoKiCAdQJBAPiQ8ROiI4lY0qBrTY6pS1LrSIhrvjOT5nSeMpVtR0PYa+KiWhezmKRsixRdzSnhE7fv PhRprUCMdgtIdOUwWxcCQQDuVpXdlUr9ZwS571A6+1qRT1Jqt4emhyJeHE+gi/ETO/zqwAYuYaI/Xha /1Rt3I6GcVCAvOwXcAIXWx5Cm2XxLAkEA7VX32jdGly4obuQF+eHL+jCN4TR/N+BQe6lRwzvEgBN1b8 B1JYxmgxjg82FdNE+k9EuLixIcSzXSwJM+ilfRoQJBAM4E1mLFjB7jD/jRXp69axo0YN+SaZWPNiv3e

农行支付接口开发--支付流程整理

这里说的农行包含农行的第三方支付,因为他的流程和处理方式完全一致 一、订单状态 待支付:用户提交订单的时候赋予此状态(可再支付) 支付成功,待确认:在农行的通知页面里,success代码中赋予此状态(不可再支付) 支付失败:在农行的通知页面里,fail代码中赋予此状态(可再支付) 交易成功:在支付宝的通知页面里,success代码中赋予此状态;在农行的查询订单代码中,当农行返回03、04时赋予此状态(不可再支付) 交易失败:在支付宝的通知页面里,fail代码中赋予此状态;在农行的查询订单代码中,当农行返回00时,赋予此状态(可再支付) 二、支付流程 首先、支付宝和农行都有一个异步通知页面。这个页面很关键 这2个页面都有一个判断支付是否成功的代码 对于支付宝来说,支付成功,就意味着交易成功,可以马上将用户的订单状态改为“交易成功” 对于农行来说,支付成功,只能表示用户的钱已经扣了,但是农行还没有到账,此时订单状态改为“已支付、待确认”,这种状态下,用户不能再次支付,否则要造成重复支付。 在这个通知页面里的代码没有执行前,我们都可以肯定用户是没有支付的,这种情况下,用户可以再次支付。 当这个通知页面执行后,就要分两种情况。 支付宝 通知页面里的success就意味着交易完成,可以将订单状态改为“交易完成”,否则就是“交易失败”

农行 通知页面里的success表示用户已经支付了,扣款了。但是钱不一定到农行的账户。 这个时候订单状态改为“支付成功、待确认”这种状态下,用户不能再次对这个订单进行支付 通知页面的fail表示支付失败,这种状态下,可以再次进行支付。 针对农行,需要设计一个定时器,定时查询处于“支付成功、待确认”02状态下的订单。 根据查询订单的返回值,改变订单的状态

支付宝WAP开发指南

WAP支付开发指南 版本1.02 修订历史 版权信息 本手册中所有的信息为支付宝公司提供。未经过支付宝公司书面同意,接收本手册的人不能复制,公开,泄露手册的部分或全部的内容。

目录 1.前言 (3) 2.接口介绍 (3) 3.接口详细说明 (4) 3.1.交易创建(alipay.wap.trade.create.direct) (4) 3.2.授权并执行(alipay.wap.auth.authAndExecute) (5) 3.3.处理支付宝系统通知。(notify_url) (6) 4.附录 (8) 4.1.所有参数查询列表 (8) 4.2.错误代码列表 (11) 4.3.签名规范 (11)

1.前言 1.目标 该文档目的是帮助商户WAP应用开发人员准确、快速完成支付宝接口集成。 2.面向读者 本文档主要面向接入支付宝WAP支付的外部商户的开发人员。 3.术语 4.操作流程 ●从商户签约平台中获取:合作伙伴ID(partnerId) 和密钥信息。 ●根据开发指南集成支付宝接口。(可参考已发布官方Demo) 5.商户交流平台 商户如果在接入过程中碰到疑问,可以通过以下形式进行咨询,支付宝工作人员会给予答复。 ●支付宝官方论坛:https://www.doczj.com/doc/8211467317.html,/thread.php?fid=747 2.接口介绍 1.商户开发内容描述 步骤一:调用接口alipay.wap.trade.create.direct,提交订单信息,获取token串。 步骤二:调用接口alipay.wap.auth.authAndExecute,提交token串,跳转到支付宝收银台。 步骤三:处理支付宝系统通知。详见

支付宝当面付C#接口开发

支付宝当面付C#接口开发(C/S) 目录 一、相关资料 (2) 1.官方接入指引: (2) 2.接口文档: (2) 3.当面付的简单描述: (3) 二、沙箱环境准备 (4) 1.注册服务商 (4) 2.创建应用 (4) 3.使用沙箱环境 (5) 4.密钥制作 (7) 三、配置小结: (11) 四.当面付相关接口开发C# (12) 1.支付宝sdk下载 (12) 2.创建工程以及添加引用 (12) 3.源码各参数简介 (12) appPrivateKeyFile (13) aliPublicKeyFile (13) appPrivateKey (13) aliPublicKey (13) aesKey (13) appId (13) serviceUrl_Test (13) serviceUrl (14) Client (14) 4.示例代码简介 (14) 源码结构 (14) ①初期化 (14) ②订单付款 (15) ③订单查询 (16) ④撤销订单 (16) ⑤订单退款 (16) ⑥对账查询 (17) 五、联系与源码下载 (17)

一、相关资料 本文说明的是支付宝当面付的C#版接口开发内容。使用的是沙箱环境进行测试,并非正式环境。正式环境与此类似。 测试时需要外网环境。 源码下载(百度云)在最后。 1.官方接入指引: https://https://www.doczj.com/doc/8211467317.html,/docs/doc.htm?spm=a219a.7629140.0.0.mvvxW0&treeI d=193&articleId=106039&docType=1 2.接口文档: https://https://www.doczj.com/doc/8211467317.html,/docs/doc.htm?spm=a219a.7629140.0.0.XVhLo4&treeI d=193&articleId=105203&docType=1

第三方支付体系研究-以支付宝为例+

第三方支付体系研究-以支付宝为例 [摘要]随着互联网应用不断融入生活,越来越多的生活服务信息被放到互联网上,生活服务网上第三方支付应运而生,而计算机网络安全问题同时也给第三方网上支付带来了很大的威胁和风险。所以本文通过阅读大量的相关资料,并通过一定的调查,最后结合支付宝的目前发展的现状,在此基础上对我国第三方支付平台发展过程中存在的问题进行探讨,最后总结出了促使我国第三方支付平台更好发展的一些对策和措施,希望本文的研究对于我国第三方支付平台的发展有一定的借鉴意义。 [关键词]第三方支付网上支付风险支付宝

The third party online payment risk and the countermeasure analysis ——Pay treasure as an example [ Abstract ]Along with the Internet application continuously into the life, more and more life information services were put on the Internet, the service life of the on-line third party payment emerge as the times require, and the safety problem of computer network at the same time to the third party online payment brings great threat and risk. So this article by reading lots of related information, and through some survey, finally, pay treasure to the current status of development, on the basis of our third party payment platform, the existing problems in the development process are discussed, finally summed up our country third party payment platform better development countermeasure and measure, hope the research to our country third party payment platform development has certain reference significance. [ Keyword ]The third party payment payment risk pay treasure

支付宝接入接口文档

支付宝接入接口文档 文档历史

目录 微信支付接入接口文档 (1) 1 API介绍 (3) 1.1接口调用方式 (3) 2 API说明 (4) 2.1获取商户开通的支付方式.............................................................. 错误!未定义书签。 2.1.1 功能描述............................................................................... 错误!未定义书签。 2.1.2 访问地址............................................................................... 错误!未定义书签。 2.1.3 请求参数............................................................................... 错误!未定义书签。 2.1.4 应答参数............................................................................... 错误!未定义书签。 2.2扫码支付接口(商户扫消费者) (4) 2.2.1 功能描述 (4) 2.2.2 访问地址 (4) 2.2.3请求参数 (4) 2.2.4 应答参数 (5) 2.3消费撤销 (5) 2.3.1 功能描述 (5) 2.3.2 访问地址 (5) 2.3.3 请求参数 (5) 2.3.4 应答参数 (6) 2.4消费退款........................................................................................... 错误!未定义书签。

支付宝支付程序及其流程图

实验要求:阅读并分析给出的支付宝支付接口程序,画出处理流程图,并回答实验思考题。实验目的:了解和熟悉支付宝支付接口程序开发,分析其处理流程。 实验内容与步骤: 1、仔细阅读后面给出的支付宝支付接口程序; 2、根据支付宝支付接口程序,画出相应的处理流程图; 3、回答实验思考题。 【实验思考题】 假设你是一家电子商务网站的经营者,你准备如何将支付宝支付接口程序嵌入你的网站,以实现向客户提供支付功能?请给出你的步骤。 实验内容与结果:

假设你是一家电子商务网站的经营者,你准备如何将支付宝支付接口程序嵌入你的网站,以实现向客户提供支付功能?请给出你的步骤。 答:1.在支付宝论坛接口专区下载支付宝接口资料,根据自身网站的情况来修改模板 2.index,卖家支付宝帐户,商户订单号,订单名称,付款金额,订单描述,默认网银,这些参数都为必填,商品展示地址需以http://开头的完整路径,例如:https://www.doczj.com/doc/8211467317.html,/myorder.htm

3.alipayapi '支付类型 payment_type = "1" '必填,不能修改 '服务器异步通知页面路径 notify_url = "https://www.doczj.com/doc/8211467317.html,/create_direct_pay_by_user-ASP-UTF-8/notify_ url.asp" '需http://格式的完整路径,不能加?id=123这类自定义参数 '页面跳转同步通知页面路径 return_url = "https://www.doczj.com/doc/8211467317.html,/create_direct_pay_by_user-ASP-UTF-8/return_ url.asp" '需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ '卖家支付宝帐户 seller_email = Request.Form("WIDseller_email") '必填 '商户订单号 out_trade_no = Request.Form("WIDout_trade_no")

支付宝面试总结

面试总结 首先自我介绍 1.面试官拿着你的简历,会挑其中的一个项目,然后让你说出这个框架的流程 2.画出框架的流程图,会问每一个部分都是干什么用的 3.针对2的问题,我们做的都是web项目,在那个框架中,servlet对应的是哪一个部分 4.由前两个问题牵引出web.xml文件配置中都有哪些属性,以及他的作用 5.对spring了解吗 6.spring的依赖注入方式有哪几种(注意不是spring的注入方式是依赖注入) 7.有关事物的问题,做项目中做到哪些与事物有关的,事物是怎么控制的,怎么去写 8.触发器,存储过程也说了一点 9.项目开发中,如果遇到一个问题,你自己也不知道该用什么技术去解决,怎么去解决, 该如何去查 10.你有三年项目开发经验,觉得自己比别人有优势的地方在哪 11.最后会问对他们公司有什么要了解的,给你个机会,让你去问问题 1,自我介绍,自己做过的项目,擅长的技术。 2,用过的框架,最擅长的那个? 3,所知道的MVC框架还有哪些? 4,经常去些什么样的网站,对自己将来有什么样的打算,规划。 5,喜欢技术吗,(喜欢)。举个例子来说明你喜欢技术。 6,以前项目中有没有加班,频率、加班时间长度。对加班的看法。 7,以前的项目主中要做什么内容,SE级别,还是开发。 8,在项目组怎样做项目,没有详细设计能做吗? 9,Struts用的什么版本。 10,Struts2用过吗?和Struts1有什么区别。 11,Spring的AOP了解吗,主要用在项目的那些方面。 12,以前的项目规模都是多大的。 1. 首先自我介绍 2. 问最熟悉的项目 3. 画出STRUTS框架响应jsp的流程图. 4. 针对2的问题,我们做的都是web项目,在那个框架中,servlet对应的是哪一个部分 5. 由前两个问题牵引出web.xml文件配置中都有哪些属性,以及他的作用 6. 对spring了解吗 7. spring的依赖注入方式有哪几种(注意不是spring的注入方式是依赖注入) 8. 有关事物的问题,做项目中做到哪些与事物有关的,事物是怎么控制的,怎么去写 9. Struts底层的相关知识 10. 项目开发中,如果遇到一个问题,你自己也不知道该用什么技术去解决,怎么去解决,该如何去查 11. 你有三年项目开发经验,觉得自己比别人有优势的地方在哪 12. 最后会问对他们公司有什么要了解的,给你个机会,让你去问问题 1. 首先自我介绍 2. 在你所用过的框架中你比较喜欢那个

支付宝接入教程以及服务端给app写支付接口入门

关于支付宝接入的几点说明和解释 在实际的开发中,我们看到开放平台密钥和合作伙伴密钥的时候,有没有直接就懵逼了的赶脚?反正我是的有。因为不是每个人都经常去开发支付功能,更不会有事儿没事儿去调这些个密钥,毕竟跟钱相关的东西,谁都会冷静三分!鉴于此,我简略说两点。 1.官方答复说,合作伙伴密钥适用于合作伙伴密钥常被适用于API 1.0版本的支付和移动支付(手机网页支付),而开放平台密钥是作为APP支付设定的。经实际测试:合作伙伴密钥和开放平台密钥在移动支付(手机网页支付)和APP支付中都是没有问题的! 2.支付分为两种形式:一是demo接入方式(API 1.0的接入方式),一种是sdk调用API(此为API 2.0的接入方式)下面是分别对两种接入的解释说明: 一.demo接入方式(API 1.0的接入方式 中(官方答复) 1.0的支付api service为:$alipay_config['service'] = "https://www.doczj.com/doc/8211467317.html,er"; 服务端程序demo地址为: https://https://www.doczj.com/doc/8211467317.html,/doc2/detail?treeId=60&articleId=103564&docType=1 文档地址为: https://https://www.doczj.com/doc/8211467317.html,/docs/doc.htm?spm=a219a.7629140.0.0.Wp8Ll3&treeId=60&articleI d=104424&docType=1 打开demo当中的配置文件alipay.config.php能看到 Parenter 是合作身份PID。这个只要进行了支付宝签约就能看到,签约流程可以在https://https://www.doczj.com/doc/8211467317.html,/中找到,不再进行说明。值得注意的是seller_id在官方的demo中可以看出seller_id 是partner,实际上seller_id 也可以是商家的支付宝账号。 从上面的配置中能看到私钥和支付宝公钥是直接写进去的。这有个要注意的地方,就是私钥和支付宝公钥必须一行存放,不能复制工具里面生成的文件中的begin和end注释行。 当然此处也是可以写私钥和公钥的文件路径的,那么这个时候去掉注释和带着注释不影响总

支付宝—案例分析报告.doc

支付宝网站——案例分析报告 正文 1、第三方支付概述 1.1第三方支付概念及优缺点 所谓第三方支付,就是一些和产品所在国家以及国外各大银行签约、并具备一定实力和信誉保障的第三方独立机构提供的交易支持平台。在通过第三方支付平台的交易中,买方选购商品后,使用第三方平台提供的账户进行货款支付,由第三方通知卖家货款到达、进行发货;买方检验物品后,就可以通知付款给卖家,第三方再将款项转至卖家账户。第三方支付购买者并非使用者,使用者并非最大的受益者,真正的受益者并非决策者,这就是第三方买单的逻辑。你消费,不用自己买单,产品或服务的提供商根本不收你的钱,而且你消费得越多,厂商还越高兴。这种消费模式之所以能够一直存在,是因为有第三方在替你买单,替产品或服务的提供商支付费用。这种经济模式又被称为“第三方(者)买单”。 1.1.2 第三方支付优缺点 首先,第三方支付模式有以下几种优点 第一,便捷性,对支付者而言,他所面对的是友好的界面,不必考虑背后复杂的技术操作过程。第三方支付平台提供一系列的应用接口程序,将多种银行卡支付方式整合到一个界面上,负责交易结算中与银行的对接,使网上购物更加快捷、便利。第二,安全性,安全,信用卡信息或帐户信息仅需要告知支付中介,而无需告诉每一个收款人,大大减少了信用卡信息和账户信息失密的风险。SET 协议是目前发展的基于信用卡支付系统的比较成熟的技术。但在SET中,各方的身份都需要通过CA进行认证,程序复杂,手续繁多,速度慢且实现成本高。有了第三方支付平台,商家和客户之间的交涉由第三方来完成,使网上交易变得更加简单。 第三,成本低廉,支付中介集中了大量的电子小额交易,形成规模效应,因而支付成本较低。消费者和商家不需 在不同的银行开设不同的账户,可以帮助消费者降低网上购物的成本,帮助

支付宝 免费接口协议

合同条款本合同中支付宝(中国)网络技术有限公司称“乙方”,相对方称“甲方”。双功能收款服务明细:具体服务内容:基本服务:双功能收款增值服务:支付宝会员通用登录、发货信息同步软件服务费用:累进交易额低于6万元(不含),按单笔交易流量的1.2%计费;累进交易额6万元(含)至50万元(不含),按单笔交易流量的1%计费;累进交易额50万元(含)至100 万元(不含),按单笔交易流量的0.9%计费;累进交易额100万元(含)至200万元(不含),按单笔交易流量的0.8%计费;累进交易额200万元(含)以上,按单笔交易流量的0.7%计费;由乙方在交易完成时自交易款项中即时扣取。第一条定义除上下文文义另有所指外,本合同中下列用语具有如下含义: 1.1 支付宝服务:乙方向甲方所提供的“支付宝”软件系统及其附随提供的款项收付服务。 1.2 支付宝账户:指甲方在使用本合同约定的“支付宝服务”时,乙方向其提供的唯一识别编号。甲方可为其设置密码、安装数字证书,并具体使用“支付宝服务”开展交易,查询交易产生的款项收付账务明细。 1.3 支付宝商家工具接口:指乙方开发的“支付宝”软件系统的软件接口,与甲方网站的软件系统对接后,即可通过甲方网站使用“支付宝服务”。乙方将依据甲方在确定本协议时所使用的支付宝账户与支付宝接口绑定;若甲方需在支付宝接口下添加其他新增支付宝账户,则需通过书面形式或其接口下正在使用的支付宝账户邮箱向乙方指定系统后台发送申请,由乙方完成相应接口绑定工作,以保证甲方收款账户的安全性。1.4 交易流量:指由“支付宝”软件系统所统计的甲方通过其选定服务类型使用“支付宝服务”所完成交易的单笔金额,是乙方据以收费的依据。 1.5 甲方用户:在甲方网站完成会员注册或者与甲方直接进行交易的用户。 1.6 双功能收款:该服务支持担保交易收款模式和即时到账收款模式,甲方或甲方用户可根据自己的需要选择其中的一种模式通过接口完成交易款项支付。在担保交易收款模式下,乙方提供代收代付的中介服务,付款人将交易款项支付到乙方,由乙方根据交易双方在“支付宝”软件系统内对交易状态的确认,完成交易款项的支付。在即时到账收款模式下,付款人一旦确认付款,款项即时到达收款人支付宝账户内,乙方对此不提供中介服务,所有的风险和责任由付款人和收款人自行解决与承担。 1.7 支付宝会员通用登录:指甲方用户可直接通过支付宝账户登录甲方网站,完成交易支付的服务。1.8 发货信息同步功能:是基于担保交易收款服务的增值功能,甲方可通过该功能,对指定交易订单同步录入发货信息,进行发货确认。第二条服务内容 2.1 乙方向甲方提供以下服务:2.1.1 安全加密为甲方使用乙方的服务提供高质量的128位网络传输加密通道,并为甲方提供信息传输的接口规范、配置安全传输协议、后台管理权限设定等服务。 2.1.2 “支付宝服务” 向甲方提供“支付宝”软件系统,以及甲方与甲方用户间等各种形式的货款收付服务。向甲方提供支付宝账户,用于甲方即时在线查询使用“支付宝服务”过程中甲方的款项收付账务明细。 2.1.3 提供在线查询系统为甲方设立网上交易信息查询功能及支付宝账户信息管理和信息查询服 务系统,可用于甲方每天二十四小时即时在线查询。该查询系统列明相关交易的时间、金额等。第三条权利义务 3.1 甲方的权利与义务 3.1.1 甲方需向乙方提交乙方要求的相关身份资料,并在该等资料发生变更后三个工作日内书面通知乙方。甲方应承担因上述资料不准确、不真实、不及时和不完整而产生的一切责任(包括但不限于发票误寄、不能联系导致的业务不能开展、乙方不能识别甲方新的身份发送的指令从而不执行甲方指令)。 3.1.2 甲方独立承担因其网站的交易信息违法、虚假、陈旧或不详实造成的投诉、退货、纠纷、处罚等责任,因此造成乙方损失的,甲方应予赔偿。3.1.3甲方应在其网站页面上如实描述“支付宝”软件系统及“支付宝服务”的内容,并通过甲方网站引导甲方用户进入“支付宝”软件系统提交服务申请,不得以甲方名义为他人获取乙方服务或者使用乙方提供的支付接口为其他网站或企业提供有偿或无偿的商业性服务。甲方承诺,不在第三方网站上使用乙方的接口,不将乙方提供的接口技术、安全协议及证书等以任何方式提供给第三方使用,不使用乙方提供的接口为第三方提供商业服务,但甲方或甲方母公司控股的机构除外。 3.1.4 甲方应妥善保管乙方提供的支付宝账户、密码和(或)数字证书,甲方的支付宝账户、密码和(或)数字证书是乙方识别甲方身份及指令的唯一标志,所有使用甲方支付宝账户、密码和(或)数字证书的操作即为甲方的(授权)操作行为,因甲方支付宝账户、密码和(或)

PHP支付宝接口实现详解

php爱好者之支付宝接口的开发 现在在网上购物成为了普遍现象,淘宝购物也是必不可少的,网上虚拟支付用到的第三方支付插件很多使用到支付宝,支付宝可以说是现在的潮流,在一个购物网站上实现虚拟支付是必不可少的,很多购物网站都在用支付宝进行支付,那么怎么才能够让自己的网站也具有同样的支付功能呢?php爱好者为您提供专业的讲解, 实现代码如下所示: require_once("alipay_service.php"); require_once("alipay_config.php"); $array=explode("@",$info["spc"]); $arraynum=explode("@",$info["slc"]); $arrayinfo=array(); //创建数组 $arrayinfo_count=array(); //创建数组 for($i=0;$i if($array[$i]!=""){ $m=$i+1; $sqlcart=mysql_query("select * from tb_commodity where tb_commodity_id='".$array[$i]."'",$conn); $infocart=mysql_fetch_array($sqlcart);//读取数据库中数据 array_push($arrayinfo,$infocart[tb_commodity_name]);//将购物商品的名称写入到数组中 array_push($arrayinfo_count,"商品 $m :$infocart[tb_commodity_name] 数量:$arraynum[$i]"); //将购物商品的数量写入到数组中 } } $commodity_name=implode(',',$arrayinfo); //获取商品名称 $commodity_count=implode(',',$arrayinfo_count); //获取商品描述信息$parameter = array( "service" => "trade_create_by_buyer", //交易类型,必填实物交易= trade_create_by_buyer(需要填写物流) "partner" =>$partner, //合作商户号 "return_url" =>$return_url, //同步返回 "notify_url" =>$notify_url, //异步返回 "_input_charset" => $_input_charset, //字符集,默认为GBK "subject" => $commodity_name, //商品名称,必填 "body" => $commodity_count, //商品描述,必填 "out_trade_no" => $ddnumber,//商品外部交易号,订单号,必填,每次测试都须修改"logistics_fee"=>$yprice, //物流配送费用 "logistics_payment"=>'BUYER_PAY', //物流配送费用付款方式:BUYER_PAY(买家支付) "logistics_type"=>'EXPRESS',// 物流配送方式:POST(平邮)、EMS(EMS)、

在线支付接口说明

在线支付接口开发总结 2012-07-05 17:06:27 经过这段时间对支付宝在线支付接口、手机在线支付接口、农业银行在线支付接口、以及支付宝担保交易接口的开发,对在线支付的原理有了一定的了解,开发过程中有点小的心得体会,在这里记录一下。 首先,这几个接口中,前面三个都是单一的支付接口,对于需要集成的商户而言,所需要做的工作为:集成支付功能使用户可以在线支付,接受支付结果进行商户系统中订单相关数据的处理。其次,担保交易接口是一个完整的在线担保体系,因此包含了在线支付、确认收货、在线申请退款、客户维权、商户退款五个相关接口。关于具体的功能可以参考支付宝提供的文档资料,这里仅进行技术开发上的分析。 其实这些在线支付的接口从原理上来讲都是一样的。这里简单地阐述一下: 首先,开发这些接口的第三方公司会给商户提供一个唯一标识pid,而且与该标识相对应的会有一个KEY,双方使用这个KEY作为加密的密钥。 其次,商户使用接口的时候,根据不同支付方的开发文档的要求,将所需要的参数(订单的相关信息如:金额、商品等)拼接成相应的形式。在发送请求之前需要对数据进行加密,而加密的方式会由支付方提供,文档中会有相应的描述,有的接口也会提供现成的方法供商户使用。加密后就可以调用接口向支付网关发送请求了。注:传递的参数中一般含有return_url 和 notify_url 两个链接地址,商户一般在这两个页面中写入订单状态处理的逻辑。 最后,是对于支付结果的处理。支付方在对相应的资金进行处理后会给发送请求的商户网站发送响应。这里有两种方式:1、页面通知(同步通知,return_url),用来显示给实际支付的客户,支付方只返回一次。2、服务器通知(异步通知,notify_url),运行在后台,实际在线支付的客户看不到,支付方会在一定时期内发送多次,直到收到商户程序反馈的约定好的标识为止。具体的原理如图1和图2所示(这里借用支付宝的原理图^_^)。 这样,整个在线支付接口就完成了商户和支付方的信息的交互。 图1 返回页面(return_url.jsp)工作原理

支付宝电脑网站支付接口接入

支付宝电脑网站支付接口接入 云时代隶属于杭州云韦科技有限公司,提供技术的互联网金融基础设施,致力于协助有意参与互联网金融业务的企业客户确定战略方向和整体解决方案,并提供业界专业的架构和系统来确保其业务安全稳定地运行,同时符合监管要求。云时代核心管理团队在互联网行业和金融行业均拥有丰富的经验。其对互联网金融的深刻理解和对互联网金融基础设施研发的专注,形成公司独特的竞争力。 网上交易时,买家的交易资金直接打入卖家支付宝账户,快速回笼交易资金。支付宝有大量的用户人群,一般的电商网站接入支付宝接口对交易成功率有一定促进意义,下面我们就谈谈支付宝电脑网站支付接入流程、条件及费率。 一、支付宝电脑网站支付签约流程 第1阶段

创建或登录支付宝账户,没有支付宝账号。 第2阶段 申请产品,准备接入资料 1)营业执照 2)企业类型商户若网站备案主体与签约主体不一致,需提供备案授权函提交资料并完善信息 1)填写商户经营信息 2)填写网址信息 3)填写商户联系人信息 服务开通约1个工作日 第3阶段 使用产品,启动开发进行产品集成,根据集成文档将产品集成到商家系统。

查看如何集成,成功接入该产品 二、电脑网站支付方式 1、手机扫一扫付款 2、在电脑端登录账户付款 三、电脑网站支付申请条件 1. 企业或个体工商户可申请; 2. 提供真实有效的营业执照,且支付宝账户名称需与营业执照主体一致; 3. 网站能正常访问且页面信息有完整商品内容; 4. 网站必须通过ICP备案,个体户备案需与账户主体一致。 (团购类网站不支持个体工商户签约) 四、电脑网站支付接口费率 单笔费率:0.6%

相关主题
文本预览
相关文档 最新文档