PayPal支付流程
一、 PayPal支付时序图
二、 PayPal启用IPN设置方式
IPN方式是用来在在支付完成以后获得Paypal的通知的。
1、 登录PayPal账户
2、 点击“Profile”
3、 点击Selling Preferences列表栏中“Instant Payment Notification Preferences”打开即时付款通知习惯设定页面;在支付完成以后,Paypal会调用这里设置的页面来通知商户支付的情况。
三、 开发详细流程
1、 选择商品页面:列出所有可供用户购买的商品,让用户选择购买,提交;
2、 支付确认页面:
a) 根据提交的商品id,获取商品id、名称,价格,货币,并产生本次交易的唯一Id号。
b) 把信息组合成cmd=_xclick,business={0},amount={1},currency_code={2},custom={3},item_name={4},invoice={5},cert_id={6}命令串
c) 使用ButtonEncryption库对命令串进行加密打包处理
此部分加密需要用到的三个密钥文件:
1、 PayPal的公钥:在PayPal后台Profile里的Encrypted Payment Settings下载。
2、 商户的公钥:用OpenSSL产生,并上传到PayPal->Profile->Encrypted Payment Settings中,并记录下PayPal对此公钥产生的Cert ID。
3、 商户的私钥:用OpenSSL产生。
d) 形成PayPal的加密按钮,呈现在页面上。下面是按钮的代码,里面包含了生成的私钥。
<input type="hidden" value="_s-xclick" name="cmd"> <input type="image" alt="Make payments with PayPal - it's fast, free and secure!" src="https://www.Sandbox.paypal.com/en_US/i/btn/x-click-but23.gif" border="0" name="submit"> <input type=hidden value=" -----BEGIN PKCS7----- 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 R4A= -----END PKCS7----- " name=encrypted>
3、 PayPal获取到支付请求,要求用户进行支付流程,当用户成功完成支付后,PayPal提交信息到商户的IPN指定的URL地址上;
商户的IPN指定的页面:
将获取的所有页面表单数据通过Http提交到Paypal上去验证,判断本地请求是否为PayPal发出的,是否真实有效,判断返回字符是否等于"VERIFIED",如果匹配证明这是个合法的回复
获取页面中的Request数据
txn_id:交易id
mc_gross:金额
payment_date:付款时间
payment_status:支付状态,是否是Completed
payment_type:付款类型:有电子支票和paypal帐号的钱两种
item_name:商品名称
custom:商户平台商品Id
invoice:商户平台产生的交易号
如果payment_status为"Completed",这证明支付已经完成,将相应的数据写回数据库,完成本次交易全过程。
4、 如果需要在支付完成以后回到自己的网站,还需要做一个设置。在My Account中,进入到Profile | Website Payment Preferences。下面是页面:
在Return URL里面设置支付完成以后返回的页面。Paypal会传递下面的参数:
tx:交易id,这个与步骤3里面的txn_id的值是一样的。
amt:交易金额。
payment_status:交易状态,交易成功的话值应该是Completed。
分享到:
相关推荐
PayPal支付流程文档.docx
总体介绍paypal标准版支付流程,附加案例代码
iOS平台线下的paypal支付完整流程demo,内置测试账号和密码
研究了paypal国际支付接口,最终做了这么个完整的支付流程。希望对大家在开发购物网提供国际支付paypal有所帮助,源代码要根据自己的需求去改动。那么就可以用了。
而PayPal是基于西方的信用体系建立的,交易流程是买家先付款,卖家在收款款的7日内发货即可。 同时,PayPal还提供了集成标准版、快速结账、站内结账等网站集成方式,方便网站用户的集成在线付款功能,提高网站的买家...
使用快速结账快捷方式可以显著缩短PayPal买家的结账流程,从而降低放弃结帐的概率并增加销售额。归根结底,网站如果能提供流畅且安全的购物体验,势必会赢得回头客光顾。 适用范围 V2.7.0版本及之前下载安装的...
手把手教你使用paypal快速付款,建立PayPal Sandbox,付款流程,paypal付款页面详情显示,本说明含图和代码,共享给大家
PHP写的Paypal购物车,可选择商品,可验证付款流程,并返回处理结果。 配置简洁,方便。
在paypal的官网上给出了这个按钮内部封装的流程,整个流程只需要用户点击按钮,触发创建订单事件,然后我们再监听用户支付成功的回调,拿到订单id传给后端,让后端再进行一次校验。 二、实现方案 接入方式 优点 ...
PayPal支付功能其实一直在更新文档和接口,这里说的是一个简单的支付功能大概流程如下 1,在网站的结账页面,设置一个提交到PayPal网站的form,里面有一些金额,商品名称,商家收款账号、结账成功后返回URL等内容, ...
支付宝Paypal 快速结账示例应用程序实施简单的快速支付工作流程申请流程: ->index.jsp -> Paypal 沙箱集成重定向 * ***************** 开始设置快速结账 ******************** --> 登录贝宝账户--> 验证地址...
该库(Symfony语言中的“捆绑包”)侧重于“后付款”工作流程,即付款后且PayPal已将即时付款通知调用发送到IPN控制器后所需的处理。 该库处理: 验证IPN呼叫 记录IPN呼叫 从IPN呼叫中提取订
您将看到完整的贝宝流程 测验 运行npm test以确保一切正常。 用法 签出使用express的example / app.js代码。 但是这里有一些步骤: 将Paypal结帐按钮放在您的网站上。 单击该按钮后,将重定向到您的“付款”处理...
PayPal宣布在今年7月1日停止快捷人民币提现服务,小编之前的联盟收款一直是通过...顺利找到解决方案,新的流程:PayPal>>提现到Payoneer>>提现到国内银行卡。 详情参看:2020年最新从PayPal提现美金的方法(实战教程)!
4,在线支付集成****** 财付通 快钱 首信易支付 网银在线 云网支付 paypal 易宝 5,特别集成了快钱神州行支付 易宝神州行支付 方便不熟悉网上支付的流程 本产品只为源码销售,如需安装另需50元费用
包括一系列屏幕和PayPal Payments API的结帐流程,可能适用于已创建的订单 指定的管理员可以登录并直接向数据库更改产品/用户/订单这使商店所有者可以将订单标记为已交付,并且还可以管理商品库存/库存 用法 环境...
Paypal Stripe 优惠券 积分 店铺,商品收藏 品牌管理 订单 分单到商户 分单退款(商户为最小单位) 商户和平台 商户入住流程 商户分帐流程 财务资金监控 转账记录 账单管理 商品审核 店铺配置 基本信息,店铺,打印机...
第三方支付 Paypal Stripe 优惠券 积分 店铺,商品收藏 品牌管理 订单 分单到商户 分单退款(商户为最小单位) 商户和平台 商户入住流程 商户分帐流程 财务资金监控 转账记录 账单管理 商品审核 店铺配置 基本信息,...
In UI来跟踪通过Braintree进行的付款流程信用卡付款贝宝付款google Pay(仅适用于Android) 注意:目前不支持Apple Pay 此外,还支持直接的Paypal-Checkout流程(无需使用下拉UI)。 仅在您只想提供贝宝付款流程的...
封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付、PayPal 支付等常用的支付方式以及各种常用的接口。不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。 ...