使用 test key 时,是 Ping++ 自己的模拟支付的网页支付,不会跳转到第三方渠道的支付界面。
使用 live key 时,如果你是 wap 类型的支付,则会跳到对应支付渠道的 wap 支付,支付完成后客户端也会收到渠道给你的一些参数(订单号等等,具体请参见附录)。如果是 app 的支付的话,会直接跳到第三方控件,会有 Ping++ Client SDK 给出的结果 result(对应的:成功success;失败fail;取消cancel;没有安装控件invalid)。
以上所有的支付结果请您根据 Ping++ 给您的服务端的 webhooks 来更新订单状态,不可用客户端获得的结果作为支付成功与否的判断条件。
附录:
一、支付宝 wap 同步参数
支付宝 wap 同步参数区分 1.0 和 2.0 接口(如何区分请参见:区分支付宝1.0和2.0产品)
1、支付宝 wap 1.0 接口还分为:新接口和旧接口(详见:https://help.pingxx.com/article/174737/)
支付宝 wap 1.0 接口 get 的数据,旧接口会在 success url 后面追加如下参数:
out_trade_no=ajdhfvewququq
request_token=requestToken
result=success
trade_no=1111182821
sign=xxxxxxx
sign_type=0001
支付宝 wap 1.0 接口 get 的数据,新接口会在 success url 后追加如下参数:
is_success=T
sign_type=RSA
sign=jEhFPlU56iC9x456EmV4Wjrzlwhvs7veEApnBe86CJc4Cj8XnpGDRA3qrGlmpHjsm0vQBJKNAKSJBSKJAGSKGASKG
service=alipay.wap.create.direct.pay.by.user
notify_id=A3K9%252FvwbhIGTtIWdZcVEOGggrNvjkW%252BBELWBCTHJSHHSB1
notify_time=2011-01-11+11%3aaaaaa
notify_type=trade_status_sync
out_trade_no=aaaaaaaaaa
trade_no=111111111111111
subject=yoursubject
payment_type=1
trade_status=TRADE_SUCCESS
seller_id=2000000000000000
total_fee=0.10
body=YourBody
2、支付宝 wap 2.0 接口会在 success url 后追加如下参数:
app_id=xxxxxx
method=alipay.trade.wap.pay.return
sign_type=RSA
sign=xxxxxx
charset=utf-8
timestamp=2016-08-11 19:36:01
version=1.0
out_trade_no=xxxxxxxxx
trade_no=2017xxxxxxxxxxxxxxx
total_amount=1
seller_id=xxxxxxxx
二、支付宝 PC 同步参数
1、支付宝 PC 1.0 接口 get 的数据,会在 success url 后面追加如下参数:
is_success=T
sign_type=RSA
sign=xxxxxxx
out_trade_no=8056118399fda470
subject=xxxxxxx
payment_type=1
exterface=create_direct_pay_by_user
trade_no=2016032921001004160281571715
trade_status=TRADE_SUCCESS
notify_id=xxxxxxx
notify_time=xxxxxx
notify_type=trade_status_sync
seller_email=xxxx
buyer_email=xxxxxxx
seller_id=2088711316963982
buyer_id=2088412260065165
total_fee=0.10
body=xxxxxx
extra_common_param=xxxx
2、支付宝 PC 2.0 接口 get 的数据,会在 success url 后面追加如下参数:
app_id=xxxx
method=alipay.trade.page.pay.return
sign_type=RSA
sign=xxxx
charset=utf-8
timestamp=xxxx
version=1.0
auth_app_id=xxxx
三、银联同步参数
银联 post 的数据,(form data)的方式在请求体中,不会 url 后面追加:
accessType=0&
bizType=000000&
certId=7651276523175341&
currencyCode=156&
encoding=UTF-8&
merId=23421342342134&
orderId=werwqefdw2343&
queryId=201506110216470414438&
respCode=00&
respMsg=success&
settleAmt=1&
settleCurrencyCode=156&
settleDate=0611&
signMethod=01&
signature=HJGHjkdsalkrwiyh2kh3khgkhdfgsxxxxxxxx&
traceNo=041443&
traceTime=0611021647&
txnAmt=1&
txnSubType=01&
txnTime=20150611021647&
txnType=01&
version=5.0.0
四、京东 wap 同步参数
用户使用“京东支付”支付成功后,将会跳转到商户的支付成功页,使用POST方式。
tradeNum 交易流水号
amount 交易金额
currency 货币类型
tradeTime 交易时间
note 交易备注
status 交易状态
sign 交易信息签名
五、线下扫码 isv_wap 同步参数
result_url 通知:前台通知,支付完成后,跳转到 result_url,并在 URL 尾部以 get 方式带上如下参数,接入方根据参数进行相应处理,订单结果以后台通知为准,前台通知用于页面展示。
参数 | 参数名称 | 请求是否必填 | 类型及最大长度 | 示例值 | 备注说明 |
---|---|---|---|---|---|
state | 支付状态 | 是 | String(1) | 0 | 返回为数字,各数值含义为:0:支付成功,1:支付失败,-1:用户取消:未支付 |
orderNum | 订单号 | 是 | String(32) | 20160919123345098000001 | 结果对应支付订单号 |
txamt | 订单金额 | 是 | String(12) | 000000000100 | 单位为分,如000000000100表示为1元 |
attach | 附加内容,原样返回 | 否 | String(127) | 附加内容 | 和请求上送时一样 |
errorDetail | 错误信息 | 否 | String(64) | 订单号重复 | 具体以返回为准 |
六、PayPal 支付同步参数
paymentId PayPal交易订单号(PayPal payment对象ID)
token 同支付凭证链接中token令牌参数
PayerID PayPal用户唯一ID通知为准
示例:?paymentId=PAY-7D227519LN9288827LPHOVLQ&token=EC-7DU00674UX9358923&PayerID=XP6886377UPSA
下一篇 Android 上微信支付成功,但是 onActivityResult 回调的 pay_result 是 cancel,而不是 success