Ping++ 接入 PayPal 支付的流程

更新于:2018年07月06日 17:29:55

写在前面

Ping++ 已支持 PayPal 跨境支付产品,适用于手机网页以及 PC 支付,如需在 APP 内使用,则需要你通过 Ping++ H5 SDK 自行封装。 

接入流程

一、准备工作:

1、注册申请

2、关联确认银行账户

3、币种确认

4、提供参数至 Ping++

5、下载 Ping++ 的 Server-SDK (以 PHP 为例)

6、下载 Ping++ 包含「PayPal」渠道的最新版 H5-SDK 

二、Server 端的接入

1、下载 Ping++ 的 Server-SDK

2、调用 Ping++ 的 SDK 创建 Charge(与其他渠道的接入一样)

    $input_data = json_decode(file_get_contents('php://input'), true);
    $channel = strtolower($input_data['channel']);
    $amount = $input_data['amount'];
    $orderNo = substr(md5(time()), 0, 12);
    $open_id = $input_data['open_id'];
    $extra = array();
    switch ($channel) {
      case 'paypal':
        $extra = array(
            'result_url' => 'http://example.com/result',	    'cancel_url' => 'http://example.com/result'
        );
        break;
    }
    try {
    $ch = \Pingpp\Charge::create(
        array(
            //请求参数字段规则,请参考 API 文档:https://www.pingxx.com/api
            'subject'   => 'Your Subject',
            'body'      => 'Your Body',
            'amount'    => $amount,//订单总金额
            'order_no'  => $orderNo,// 推荐使用 8-20 位,要求数字或字母,不允许其他字符
            'currency'  => 'usd',
            'extra'     => $extra,
            'channel'   => $channel,// 支付使用的第三方支付渠道取值,请参考:https://www.pingxx.com/api
            'client_ip' => $_SERVER['REMOTE_ADDR'],// 发起支付请求客户端的 IP 地址,格式为 IPV4,如: 127.0.0.1
            'app'       => array('id' => APP_ID)
        )
    );
    echo $ch;// 输出 Ping++ 返回的支付凭据 Charge
} catch (\Pingpp\Error\Base $e) {
    // 捕获报错信息
    if ($e->getHttpStatus() != NULL) {
        header('Status: '. $e->getHttpStatus());
        echo $e->getHttpBody();
    } else {
        echo $e->getMessage();
    }
}

三、Client 端接入

1、将我们之前下载好的 Ping++ 的 H5 端 SDK 导入到工程中(如下图)

0015863b8879af43f4200549851f210

3、调用 Ping++ 的 H5-SDK 实现支付功能

pingpp.createPayment(object, function(result, err){	
    // object 需是 Charge/Order/Recharge 的 JSON 字符串	
    // 可按需使用 alert 方法弹出 log
    console.log(result);
    console.log(err.msg);
    console.log(err.extra);
    if (result == "success") {    	
        // 只有微信公众号 (wx_pub)、QQ 公众号 (qpay_pub)支付成功的结果会在这里返回,其他的支付结果都会跳转到 extra 中对应的 URL
    } else if (result == "fail") {
    // Ping++ 对象不正确或者微信公众号 / QQ公众号支付失败时会在此处返回
    } else if (result == "cancel") 
    {// 微信公众号支付取消支付}
});


    您需要登录后才可以回复