最近在做一个PHP外贸独立站,想集成PayPal在线支付,于是就想把PayPal做成一个插件。下面就教大家如何一步步来开发PayPal整个流程,有需要的朋友点赞收藏,或下载本插件代码参考。
在这里插入图片描述

Paypal接口申请

  • 必须是企业认证的帐号才能申请在线支付接口
  • 申请网站接口,
  • 会有sanbox沙箱模式(用于开发)和live生成环境模式以及对应的秘密。
  • 会有sanbox测试付款帐号和测试收款帐号
推荐内容

PayPal接口方式

  • REST API接口,方便直接curl到接口就行。推荐使用此方式。
  • SDK。必须安装SDK组件,用其自带方法

截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开发者中心看到的key也是一样的。
在这里插入图片描述

Paypal相关网址

  • paypal网址: https://www.paypal.com/ .
  • paypal开发者网址: https://developer.paypal.com/developer/accounts/.
  • paypal测试账号登录网址: https://www.sandbox.paypal.com/ .
  • 接口手册网址: https://developer.paypal.com/api/rest/
  • PHP SDK GIT地址: https://github.com/paypal/Checkout-PHP-SDK .
  • 官方客服网址: https://www.paypal-support.com/s/?language=zh_CN .(这里登录用paypal正式账号,登录之后联系我们可以提问,回复很慢但是问题都会回答)

PayPal集成思路流程

这里大概叙述一下流程:

  1. 接口获取access_token,后续所有地址都需要这个参数 用clientIdCLIENT_SECRET去获取
    接口:/v1/oauth2/token
  2. 接口预生成订单,获取支付链接,这里注意参数一定要带回调地址return_url,当到第4步用户完成支付后会跳回到return_url这个地址
    接口:/v2/checkout/orders
  3. 跳转支付,在预支付返回数据中,relpayer-action链接为跳转支付。
  4. 支付后会跳回自己给的回调地址return_url,url上会带上2个参数:tokenPayerID,token就是订单id,再次调用接口确认支付完成
    接口:/v2/checkout/orders/{id}/capture
    这个id是上一个生成订单接口返回的参数id,同时回调回来的url上参数token也是这个
  5. 处理自己的付款完成的订单相关逻辑

步骤截图:
预支付返回数据。
在这里插入图片描述
对应restful API key详情下有对应的收款方的帐号和密码。
在这里插入图片描述

用sanbox accounts下的帐号去登陆支付。
在这里插入图片描述
下面是Sanbox测试的付款帐号,分个人和企业,点击去有登陆的密码。
在这里插入图片描述
源码实现:

##PHP Paypal支付插件源码:https://www.uihtm.com/other/19755.html

return [
    'ClientID'     => [
        'title' => 'ClientID',
        'type'  => 'text',
        'value' => '',
        'tip'   => 'Client ID,贝宝开发者平台 https://developer.paypal.com/developer/applications'
    ],
    'Secretkey'     => [
        'title' => 'Secretkey',
        'type'  => 'text',
        'value' => '',
        'tip'   => '贝宝开发者平台Secret'
    ],
    'Model'     => [
        'title' => '模式',
        'type'  => 'radio',
        'options' => [
            'Sandbox' => 'Sandbox',
            'Live' => 'Live'
        ],
        'value'   => 'Sandbox'
    ]
];

class PaypalPlugin extends Plugin
{
    public $info = [
        'name'        => 'Paypal',//插件英文名,改成你的插件英文就行了
        'title'       => 'Paypal支付插件',
        'description' => 'Paypal支付插件',
        'status'      => 1,
        'author'      => 'Ayumi QQ:44784009',
        'version'     => '1.0',
        'author_url'  => 'https://www.uihtm.com/other/19755.html'
    ];

    public $hasAdmin = 1;//插件是否有后台管理界面

    // 插件安装
    public function install()
    {
        return true;//安装成功返回true,失败false
    }

    // 插件卸载
    public function uninstall()
    {
        return true;//卸载成功返回true,失败false
    }


}
点击阅读全文
Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐