Paypal 支付粗糙集成

前言

因为paypal的官方文档上说明paypal的支付sdk其实已经被废弃了,所以我用了 官方的解释~ 所以我这里就直接参考了braintree sdk sample
这个例子可以直接运行 braintree集成的官网地址

支付前准备

准备palpay的账号和braintree的账号 他们两个是从属关系但又不是一样的,sandbox环境可以关联起来 但是生产环境又不一样 很烦

  • 首先进入braintree的沙箱平台 创建的自己的apk,在setting->processing 关联paypal的账号 因为公司以前的用paypal的 如下图地址

  • 在paypal 的控制台中创建自己的apk 文件并关联沙箱测试账号

  • 在sandbox->account 中以facilitor结尾的是商家账号 以buyer结尾的是买卖账号 测试时候使用买家账号就可以了

代码编写

我用的是drop-in 集成方便 同时还能集成信用卡付款、google pay、apple pay

整体的流程图如下地址 要知道的是客户端不处理付款 主要的付款操作都是在服务器执行的

  • 首先在module目录中依赖com.braintreepayments.api:drop-in:3.2.1注意依赖这个 项目的 compileSdkVersion要在26以上
  • 流程解释下 首先要从服务器端获取token,然后客户端像braintree服务器请求nonce 然后发送给自己的服务器 服务器接收后生成transaction 在向braintree服务器做支付处理
  • 然后根据官方的参考文档执行就行了 地址

具体集成还是比较简单的关键是账号的准备太麻烦了

如果你在集成的时候服务端还没做好 这里有个服务端的例子可以临时充当下后台~地址 这个例子直接在as中运行就可以了 不过要简单的修改下 增加教程中的两个接口 client_token 和check 具体代码如下
private String token="";
@RequestMapping(value = "/client_token", method = RequestMethod.GET)
public @ResponseBody String clientToken() {
JSONObject object=new JSONObject();
token=gateway.clientToken().generate();
object.put("token",token);
return object.toString();
}

`
@RequestMapping(value = “/checkout”, method = RequestMethod.POST)
@ResponseBody
public String checkoutHere( @RequestBody String json) {

    JSONObject ob=new JSONObject(json);
    String nonceFromTheClient = ob.optString("payment_method_nonce");
    System.out.println("nonce:"+nonceFromTheClient);
    TransactionRequest request = new TransactionRequest()
            .amount(new BigDecimal("18.00"))
            .paymentMethodNonce(nonceFromTheClient)

// .paymentMethodToken(token)
// .paypalAccount().done()
.options()
.submitForSettlement(true)
.done();

    Result<Transaction> result = gateway.transaction().sale(request);

    JSONObject jsonObject=new JSONObject();
    if (result.isSuccess()) {
        Transaction transaction = result.getTarget();
        jsonObject.put("message",transaction.getId());
        System.out.println("transaction1:"+transaction.getId());
    } else if (result.getTransaction() != null) {
        Transaction transaction = result.getTransaction();
        System.out.println("transaction2:"+transaction.getId());
        jsonObject.put("message1",transaction.getId());

    } else {
        StringBuilder errorString = new StringBuilder();
        for (ValidationError error : result.getErrors().getAllDeepValidationErrors()) {
            errorString.append("Error: ").append(error.getCode()).append(": ").append(error.getMessage()).append("\n");
        }
        jsonObject.put("error",errorString.toString());

        System.out.println("error:"+errorString.toString());
    }
    return jsonObject.toString()+"\nnonceFromTheClient: "+nonceFromTheClient+"\ntoken:"+token;
}`
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值