ASP Net/C - PayPal接口文档

分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

最近做了一个在线支付,哎呀,把我给折腾的可不轻.搞了很长时间.    PayPal 是一家 eBay 公司,它是在线付款解决方案的全球领导者,在全世界有超过七千一百六十万个帐户用户。PayPal 可由易趣买家和卖家、在线零售商和其他商家在 56 个市场以 6 种货币使用:加元 欧元 英镑 美元 日元 澳元;PayPal 快速、安全而又方便,是跨国交易的理想解决方案。国内的支付宝和PayPal 类型是差不多的!

随着制作外贸网站的数量增多,有些客户针对国外需要用到PayPal 支付接口,今天找了些PayPal 支付接口方面的资料,以备以后查询!也可以点GO去看原文档.

1.到https://developer.paypal.com注册一个开发帐号,好了之后再进入Sandbox建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的),信息可以是假的,注意:这里的至少两个测试帐号是在你所建立的开发帐号里面建立的,不要注册错了;

2.测试是很麻烦,但是是必不可少的,因为如果客户买过一次出错之后,就不会来第二次了,所以花半天时间做测试是很重要的;

3.代码帖出来给大家参考一下,我做的是不很细,支付成功后返回的结果我就没有做,因为我在测试的时候已经没有问题了,所以没有做,改天有空会完善的;


ASP.Net/C#

 

using System;
using System.IO;
using System.Text;
using System.Net;
using System.Web;

public partial class csIPNexample :System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Post back to either sandbox or live
string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
string strLive = "https://www.paypal.com/cgi-bin/webscr";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strSandbox);

// Set values for the request back
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] param = Request.BinaryRead(HttpContext.Current.Request.ContentLength);
string strRequest = Encoding.ASCII.GetString(param);
strRequest += "&cmd=_notify-validate";
req.ContentLength = strRequest.Length;

//for proxy
//WebProxy proxy = new WebProxy(new Uri("http://url:port#"));
//req.Proxy = proxy;

//Send the request to PayPal and get the response
StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
streamOut.Write(strRequest);
streamOut.Close();
StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
string strResponse = streamIn.ReadToEnd();
streamIn.Close();

if (strResponse == "VERIFIED")
{
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
}
else if (strResponse == "INVALID")
{
// log for manual investigation
}
else
{
//log response/ipn data for manual investigation
}
}
}

 

ASP.Net/VB

 

Imports System.Net
Imports System.IO

Partial Class vbIPNexample
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
‘Post back to either sandbox or live
Dim strSandbox As String = "https://www.sandbox.paypal.com/cgi-bin/webscr"
Dim strLive As String = "https://www.paypal.com/cgi-bin/webscr"
Dim req As HttpWebRequest = CType(WebRequest.Create(strSandbox), HttpWebRequest)

‘Set values for the request back
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"
Dim Param() As Byte = Request.BinaryRead(HttpContext.Current.Request.ContentLength)
Dim strRequest As String = Encoding.ASCII.GetString(Param)
strRequest = strRequest + "&cmd=_notify-validate"
req.ContentLength = strRequest.Length

‘for proxy
‘Dim proxy As New WebProxy(New System.Uri("http://url:port#"))
‘req.Proxy = proxy

‘Send the request to PayPal and get the response
Dim streamOut As StreamWriter = New StreamWriter(req.GetRequestStream(), Encoding.ASCII)
streamOut.Write(strRequest)
streamOut.Close()
Dim streamIn As StreamReader = New StreamReader(req.GetResponse().GetResponseStream())
Dim strResponse As String = streamIn.ReadToEnd()
streamIn.Close()

If strResponse = "VERIFIED" Then
‘check the payment_status is Completed
‘check that txn_id has not been previously processed
‘check that receiver_email is your Primary PayPal email
‘check that payment_amount/payment_currency are correct
‘处理付款
ElseIf strResponse = "INVALID" Then
‘log for manual investigation
Else
‘Response wasn‘t VERIFIED or INVALID, log for manual investigation
End If
End Sub
End Class

 

ASP/VBScript

 

(requires MSXML)

<%@LANGUAGE="VBScript"%>
<%
Dim Item_name, Item_number, Payment_status, Payment_amount
Dim Txn_id, Receiver_email, Payer_email
Dim objHttp, str

‘ read post from PayPal system and add ‘cmd‘
str = Request.Form & "&cmd=_notify-validate"

‘ post back to PayPal system to validate
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
‘ set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
‘ set objHttp = Server.CreateObject("Microsoft.XMLHTTP")
objHttp.open "POST", "https://www.paypal.com/cgi-bin/webscr", false
objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHttp.Send str

‘ assign posted variables to local variables
Item_name = Request.Form("item_name")
Item_number = Request.Form("item_number")
Payment_status = Request.Form("payment_status")
Payment_amount = Request.Form("mc_gross")
Payment_currency = Request.Form("mc_currency")
Txn_id = Request.Form("txn_id")
Receiver_email = Request.Form("receiver_email")
Payer_email = Request.Form("payer_email")

‘ Check notification validation
if (objHttp.status <> 200 ) then
‘ HTTP error handling
elseif (objHttp.responseText = "VERIFIED") then
‘ check that Payment_status=Completed
‘ check that Txn_id has not been previously processed
‘ check that Receiver_email is your Primary PayPal email
‘ check that Payment_amount/Payment_currency are correct
‘ process payment
elseif (objHttp.responseText = "INVALID") then
‘ log for manual investigation
else
‘ error
end if
set objHttp = nothing
%>

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

原文地址:https://www.cnblogs.com/swdhywhd/p/10506400.html

时间: 2024-11-06 02:27:50

ASP Net/C - PayPal接口文档的相关文章

Asp Net Core Swagger自动生成接口文档

Swagger是什么 Swagger工具为你的Asp Net Core生成漂亮的API文档.目前社会上大部分都是一个服务端为N个客户端提供接口,往往我们需要提供一个友好的API文档,Swagger的出现,几乎使得API文档完全自动化. 开始使用Swagger 此处我们使用开发IDE为VsCode,输入dotnet new webapi -o SwaggerDemo 创建ASP.NET Core Web API项目 添加Swashbuckle.AspNetCore包(此处不讨论包的安装方法,请自行

asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档

asp.net core中使用Swashbuckle.AspNetCore生成接口文档 Swashbuckle.AspNetCore:swagger的asp.net core实现,本文使用版本为v1.1.0项目地址:https://github.com/domaindrivendev/Swashbuckle.AspNetCore仔细看了下readme,发现在百度找半天的东西其实readme里面就有... 开局一张图,然后开始编,一些基本的asp.net core东西就不再赘述,本文只对Swash

DSO(dsoframer)的接口文档

(开发环境)使用前先注册一下DSOFramer.ocx    操作:将DSOFramer.ocx复制到C:\windows\system32目录下,         开始->运行->regsvr32 DSOFramer.ocx , 系统会提示DSOFramer.ocx中的DllRegisterServer成功 DSO的接口文档 /*1.新建*///新建Worddocument.all.FramerControl1.CreateNew("Word.Document");//新

Swagger UI教程 API 文档神器 搭配Node使用 web api 接口文档 mvc接口文档

两种方案 一.Swagger 配置 web Api 接口文档美化 二.通过NodeJS 发布Swagger UI 配置api 文档 先说一下简单的 Swagger 配置 web Api  Swagger-UI本身只提供在线测试功能,要集成它还需要告诉它本项目提供的各种服务和参数信息.这里就需要一些工作量了,不过好在许多第三方库已经给我们完成了这一工作.我这里用的是Swashbuckle,使用它也比较简单,直接使用Nuget添加其程序包即可: 1.初始化包  PM> Install-Package

如何利用apidoc来写接口文档

在开发后台接口的过程中,肯定要提供一份api接口文档给终端.一直用word写,太丑了..怎么才能做出一份漂亮的api文档呢?找了好久发现了今天的主角-apidoc. 官网地址:http://apidocjs.com 开放API已经成为当下主流平台的一个要素,特别对于社交.电商类的平台开放API更成为了竞争力的一种.开放API文档的完整性.可阅读性往往影响着接入方是否能顺利地.快速地接入到平台,一份好的.统一的API文档也是开放平台不可或缺的要素. apidoc是通过源码中的注释来生成API文档,

附录1:接口文档参考模板

https://www.w3cschool.cn/phalapi/5fhi1tth.html 附录1:接口文档参考模板 由 chanzonghuang 创建,最后一次修改 2016-11-20 虽然提供了在线接口参数的查看,但在和客户端对接过程中,我们作为后台开发,还是需要人工提供接口文档给客户端的,这里提供一个接口文档编写的模板,以供参考,并且以我们熟悉的?service=User.GetBaseInfo为例说明如何编写高效的文档. 温馨提示:斜体字表示是注释说明. 功能说明 对接口功能的简单

BugPhobia准备篇章:Beta阶段前后端接口文档

0x00:序言 Two strangers fell in love, Only one knows it wasn’t by chance. To the searching tags, you may well fall in love with http:// 10.2.26.67 Github地址:Beta阶段前后端接口定义说明.md 版本管理 修改记录 V1.0 Beta阶段前后端接口文档一稿整理完成,记录用户.标签(含推荐).搜索和问答部分的主要接口 0x01 :接口定义说明 接口定

Abp中SwaggerUI的接口文档添加上传文件参数类型

在使用Swashbuckle上传文件的时候,在接口文档中希望看到上传控件,但是C#中,没有FromBodyAttribute这个特性,所以需要在运行时,修改参数的swagger属性. 首先看下,最终效果: 下面介绍实现. 实现原理,通过swagger提供的filter,找到action中带有SwaggerFileUpload特性的参数,然后给swagger operaion.parameters添加一个自定义的参数,即文件类型参数即可. (1)定义SwaggerFileUploadAttribu

接口文档

什么是接口文档? 在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护. 为什么要使用接口文档? 1.项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发. 2.项目维护中或者项目人员更迭,方便后期人员查看.维护. 接口文档的核心是什么? 接口核心分为四个部分: 请求方法. uri.请求参数.返回参数. 请求方法: 即请求的方法是什么.常用的请求方法有get.post.delete.