时间:2019-1-29 15:39:39

文章相应链接:

官方SDK:https://developer.paypal.com/docs/api/rest-sdks/

官方API:https://developer.paypal.com/docs/api/payments/v1/

官方.NET 支付案例:https://paypal.github.io/PayPal-NET-SDK/Samples/PaymentWithPayPal.aspx.html

官方SDK 支付使用逻辑:https://developer.paypal.com/docs/api/quickstart/create-process-order/#

PayPal 支付流程说明:

1。安装官方SDK (上面的第一个链接)

  .NET 案例: Install-package Paypal

2.编写支付代码(上面的第4个链接)

3.创建支付订单详情,返回一个approval_url(获得这个URL)返回前端请求跳转到这个页面确认订单信息,用户点击支付按钮。

4.paypa 回调 后台配置的 URL

5.处理业务逻辑,例如修改订单状态等等

6.UI 渲染支付成功页面。

7. End 结束。

代码案例:

public static bool PayPalCreate(string payerId) // 这个ID 是回调的时候自己传递过来的。所以自行获取调用

{

try

{

var payer = new Payer() { payment_method = "paypal" };

var config = ConfigManager.Instance.GetProperties();

var accessToken = new OAuthTokenCredential(config).GetAccessToken();

var apiContext = new APIContext(accessToken);

string createParamId = "";

if (string.IsNullOrEmpty(payerId))

{

var guid = Convert.ToString((new Random()).Next(100000));

//var baseURI = Request.Url.Scheme + "://" + Request.Url.Authority + "/PaymentWithPayPal.aspx?";

var baseUrl = "https://164l647f09.51mypc.cn/PayStripe.ashx?method=PayImageListTest?";

var redirectUrl = baseUrl + "guid=" + guid;

var redirUrls = new RedirectUrls()

{

cancel_url = redirectUrl + "&cancel=true",

return_url = redirectUrl

};

var itemList = new ItemList()

{

items = new List<Item>()

{

new Item()

{

name = "Item Name",

currency = "TWD",

price = "15",

quantity = "5",

sku = "sku"

},

new Item()

{

name = "Item Name2",

currency = "TWD",

price = "15",

quantity = "5",

sku = "sku"

}

}

};

var details = new Details()

{

tax = "30",  // 这几个价格都是要  求和, 并且相等,  官网有说明

shipping = "10",

subtotal = "150"

};

var amount = new Amount()

{

currency = "TWD",

total = "190.00", // Total must be equal to sum of shipping, tax and subtotal.

details = details

};

var transactionList = new List<Transaction>();

transactionList.Add(new Transaction()

{

description = "Transaction description.",

invoice_number = "123456789101113",

amount = amount,

item_list = itemList

});

var payment = new Payment()

{

intent = "sale",

payer = payer,

redirect_urls = redirUrls,

transactions = transactionList,

};

var createdPayment = payment.Create(new APIContext(accessToken));

createParamId = createdPayment.id;   // 需要存储起来,方便回调的时候用这个ID去做支付扣款,我这边没做存储,只是复制出来了,然后调试的时候粘贴上去做的扣款

//   payerId = createdPayment.payer.payer_info.payer_id;

var links = createdPayment.links.GetEnumerator();

while (links.MoveNext())

{

var link = links.Current;

if (link.rel.ToLower().Trim().Equals("approval_url"))

{

var linkUrl = link.href;

// Redirect the customer to link.href

}

}

// Using the information from the redirect, setup the payment to execute.

}

else

{

var createdPaymentId = createParamId;   // 需要存储起来,方便回调的时候用这个ID去做支付扣款,我这边没做存储,只是复制出来了,然后调试的时候粘贴上去做的扣款

var paymentExecution = new PaymentExecution() { payer_id = payerId };

var payment2 = new Payment() { id = createdPaymentId };

// Execute the payment.

var executedPayment = payment2.Execute(apiContext, paymentExecution);

}

return true;

}

catch (Exception ex)

{

return false;

}

}

一个简单的支付案例分享,官网有很多支付模式,大伙可以自己去瞅瞅。

 文章中有很多依赖没有完全写清楚,需要自行去看看官方文档 琢磨,比如安装了Nuget包,web.config 的配置没写 ClientID,秘钥。等等

PayPal 对接的更多相关文章

  1. paypal对接

    paypal支付接口准备工作 首先去申请一个paypal账号,https://www.paypal.com/. 申请完毕并登录,进入https://developer.paypal.com/devel ...

  2. paypal接口对接注意事项

    追加:新的设定画面 在paypal对接过程中,会存在return_url和notify两种 分别用pdt和ipn实现 但是对于paypal,大家请注意,真实环境和沙盒测试环境的区别 你可以到www.p ...

  3. paypal的IPN机制

    paypal对接时发现有这么一个机制,看起来还不错,起到了防止篡改欺诈行为,保证了通信的安全性,但会增加几次通信.

  4. Paypal标准支付对接

    提醒一下,题主是在快速标准支付做到一半的时候换成了标准支付,所以该文档的快速支付大家做个参考就可以了. 一.两种支付方式 标准支付 优点:纯前端对接,简单方便,适用于非技术开发人员.个人即可用,不用花 ...

  5. PayPal支付对接

    开发时间:2019-04-30 我的目标:在我们公司的海外网站上,接入PayPal支付,美国用户在线完成付款. 准备: (1)准备:公司注册信息(执照,注册号,法人等),法人信息(身份证,住址等) ( ...

  6. 【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo

    开篇先给大家讲段历史故事,博主是湖北襄阳人.襄阳物华天宝,人杰地灵,曾用名襄樊.在2800多年的历史文化中出现了一代名相诸葛亮(卧龙),三国名士庞统(凤雏),魏晋隐士司马徽(水镜先生),唐代大诗人孟浩 ...

  7. 海外支付:遍布全球的Paypal

    海外支付:遍布全球的Paypal 吴剑 2015-11-26 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian 吴剑 http://www.cnblogs.co ...

  8. PayPal、支付宝诞生的故事 | 概述起源篇

    你知道第三方支付是如何由来的吗? 第三方支付概述 说起第三方支付,好像大家都知道,天天不是用支付宝和微信吗?支付宝和微信支付确实是行业内非常具有代表的第三方支付公司,但现在他们已经不完全是一家第三方支 ...

  9. paypal支付 NVP支付 paypal 手续费 GetTransactionDetails

    主要内容: 本文章主要讲解的是NVP的对接,以最简单的接口案例,讲解一下对接NVP的方案. 先提供下paypal 官方文档的主要功能对接说明,如下 1.请求API 服务器端点 描述 https://a ...

随机推荐

  1. 【(博弈)dfs序+树状数组】BZOJ2819-Nim

    [题目大意] 普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取.谁不能取谁输.这个游戏是有必胜策略的.现在对每一堆编号1,2,3,4,...n,在 ...

  2. css排版之-标准文档流

    标准流指的是在不使用其他的与排列和定位相关的特殊CSS规则时,各种元素的排列规则.HTML文档中的元素可以分为两大类:行内元素和块级元素.       1.行内元素不占据单独的空间,依附于块级元素,行 ...

  3. dns问题,QQ打得开,网页打不开

    dns问题,QQ打得开,网页打不开 ip4 dns 改为114.114.114.114. 原因有可能是路由出错之类的.114是默认的通用ip

  4. Linux中的黑洞(black hole)-/dev/null

    http://blog.csdn.net/loongshawn/article/details/50514018

  5. 在 Ubuntu 14.04 上安装 Ubuntu Tweak 0.8.8

    转自:http://linux.cn/article-3335-1.html 关于 Ubuntu Tweak,Ubuntu 老用户再熟悉不过了,Ubuntu tweak 相当于 windows 的优化 ...

  6. 扩展 jQuery datebox控件按钮

    功能需求: 自定义扩展,将原先的datebox控件按钮进行自定义的扩展: 1.问题: 对原先的时间按钮控件进行更改扩展,新增 “一刻钟” “半小时” “一小时” 选项. 获取原先的 datebox 对 ...

  7. 二十四种设计模式:代理模式(Proxy Pattern)

    代理模式(Proxy Pattern) 介绍为其他对象提供一个代理以控制对这个对象的访问. 示例有一个Message实体类,某对象对它的操作有Insert()和Get()方法,用一个代理来控制对这个对 ...

  8. 破解MyEclipse2015 stable3.0

    整个破解过程最好断网: 1.安装好MyEclipse2015 stable3后,打开设置好工作目录后,退出.2.将plugins文件夹中的文件拷贝到myeclipse安装目录的plugins文件夹下, ...

  9. 利用HTML5与jQuery技术创建一个简单的自动表单完成

    来源:GBin1.com 在线演示   在线下载 谷歌快速搜索自带大量自动完成插件——库中甚至还有一个附带的jQuery UI共享选项.然而今天我要寻找一个替代的解决方案.由DevBridge开发的j ...

  10. C#时间的味道——任时光匆匆我只在乎你

    如果没有遇见你,我将会是在哪里?日子过的怎么样人生是否要珍惜...任时光匆匆我只在乎你,心甘情愿感染你的气息,人生几何能得到知己...一首邓丽君的<我只在乎你>不禁令我唏嘘不已,这些年离我 ...