写在前面
Ping++ 已支持 PayPal 跨境支付产品,适用于手机网页以及 PC 支付,如需在 APP 内使用,则需要你通过 Ping++ H5 SDK 自行封装。
接入流程
一、准备工作:
1、注册申请
2、关联确认银行账户
3、币种确认
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 导入到工程中(如下图)
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") 
    {// 微信公众号支付取消支付}
});