Paypal移动支付调研

1 文档及资源:
开发者站点: https://developer.paypal.com/
demo及sdk下载地址:
iOS:      https://github.com/paypal/PayPal-iOS-SDK  
android:      https://github.com/paypal/PayPal-Android-SDK  


PayPal移动支付的特点
       Paypal提供多种服务,如web支付,使用PayPal登陆,广告,移动支付sdk等。
本次调研重点放在移动支付方面,针对移动支付PayPal提供支付rest api及基于此
api的移动支付sdk(包括android和iOS)。

PayPal移动SDK主要特性如下:
a) 接受信用卡和PayPal支付:开发者能够简单地将PayPal和信用卡支付集成到应用之中,信用卡支持手动输入和摄像头扫卡。
b) 未来支付:一旦客户将PayPal账户授权给开发者的应用中,使用PayPal付款时就无需再次登陆,此功能用户可设置。
     未来支付的详细说明文档: https://developer.paypal.com/webapps/developer/docs/integration/mobile/make-future-payment/
c) 原生用户体验:开发者可以提供无缝支付体验,用户付款时无需重定向到新页面,即可完成支付。

PayPal Rest API目前支持的国家及货币种类与限制
https://developer.paypal.com/webapps/developer/docs/integration/direct/rest_api_payment_country_currency_support/

4 使用PayPal SDK
     1)注册应用
          使用api或sdk前你必须先注册一个开发者账号,然后创建自己的应用。
                https://developer.paypal.com/webapps/developer/applications/myapps

      2)应用参数及设置。
              创建完应用后,针对单独app,系统会提供你测试环境和正式环境的账号、服务器地址、 Client ID与Secret。
              这些参数是你使用sdk或api时需要的。针对每个app后台还提供了“是否接受付款”和“是否使用Paypal登陆”的设置开
              关, 这些设置还提供了高级选项,比如登陆的高级设置里你可以设置通过oauth从用户那里获得那些信息。
               sdk或api中的所有功能在测试环境都是开启的,但是正式环境某些功能需要你根据需要手动去后台开启,如“直接使
              用信用卡”,“未来支付”,这个设置是针对整个开发者账号的。
      3 )sdk使用说明及支付流程
           iOS和android sdk均支持  Single Payment(信用卡与PayPal支付) 和 Future Payments(未来支付)
          各平台 代码集成和项目配置参见个demo以及demo提供的文档。
          Single Payment 支付流程:
              1 sdk展现UI,获得用户交易信息
              2 确认并发送支付信息到Paypal,完成支付动作。
              3 sdk返回Paypal的支付响应信息给我们。
              4 将支付响应信息发送给我们自己的服务器进行验证。
                  我们自己的服务器需要调用Paypal提供的服务api来验证支付的真实性。
              5 提供用户所购买的商品或服务。
         Future Payments 支付流程
              1 展现UI让用户使用自己的Paypal账户对应用授权。
              2 询问用户是否同意使用Paypal“未来支付”的服务(使用OAuth2协议)。
              3 如果用户同意,sdk与Paypal OAuth server通信,返回 OAuth2 authorization code 给应用。
             4 应用将拿到的code发给自己的服务器,authorization code的生命周期也非常短暂,拿到后就立即
                给自己的server。
             5 服务器使用code去换取access token(shot-lived)和refresh token(long-lived,10年),服务器
               需要存储该token,以便后面可以直接执行该用户的支付操作。 
             6 当之后有“未来支付”行为发生的时候,客户端将一个应用相关的id(该id由sdk生成)和交易信息发送给自己
                的服务器。
             7 服务器使用该id(放在http header里,key为 Paypal-Application-Correlation-Id ),oath token和交易信息去
                创建支付。服务器首先要使用互用的refresh token换取最新的access token,服务器端具体操作可参见
                demo中的文档,在线文档: https://github.com/paypal/PayPal-iOS-SDK/blob/master/docs/future_payments_server.md

                future payments文档  
            https://developer.paypal.com/webapps/developer/docs/integration/mobile/make-future-payment/  

使用PayPal Rest API
     1)API 使用demo:   https://developer.paypal.com/webapps/developer/docs/integration/direct/make-your-first-call/
     2)API 文档: https://developer.paypal.com/webapps/developer/docs/api/  

6 测试注意事项
           https://developer.paypal.com/webapps/developer/docs/integration/direct/test-the-api/

7 上线
      上线正式环境需要申请商业账户,确保绑定了提款账户。
阅读更多

更多精彩内容