alipay.intl.acquiring.cashier.wap.pay
You can use this interface to integrate an in-app payment.
Request parameters
Header
No | Name | Description | Type | Length | Required | Remarks | Sample |
1 | version | API version | string | 8 | Y | As per the respective API reference | 2.0.0 |
2 | function | API interface | string | 128 | Y | According to specifications defined by each business domain | alipay.intl.acquiring.cashier.wap.pay |
3 | clientId | Client ID | string | 32 | Y | Provided by Alipay, used to identify partner and application system | 4Q5XSH6SSG02T006 |
4 | reqTime | Request time | datetime | / | Y | DateTime with timezone, which follows the ISO-8601 standard.Refer to: RFC 3339 Section 5.6 | 2018-12-04T22:00:53-08:00 |
5 | reqMsgId | Request message ID | string | 64 | Y | Each request will be assigned with a unique id (uuid).The reqMsgId identify an unique system request, it is not used to identity an unique business request. | 2b76d599f8072d042b68bc2f43be4211 |
6 | reserve | Reserved for future implementation | string | 256 | N | Key/Value | {} |
Body
No | Name | Description | Type | Length | Required | Remarks | Sample |
1 | merchantId | The merchant id, which identifies the settlement target that Alipay would settle to. | string | 64 | Y | 2160400000002012 | |
2 | productCode | The product code. | enums<productcode> | 64 | Y | AGREEMENT_OR_CASHIER_PAY | |
3 | merchantTransId | Unique merchant transaction id. | string | 64 | Y | 201904030205425512477 | |
4 | order | The order information. | Order | / | Y | The orderAmount should be provided in the smallest common currency unit.For example, to create a charge for $1.00, you would set orderAmount.value=100 (100 cents). | { "orderAmount":{ "currency":"HKD", "value":"1000" }, "orderTitle":"Women Summer Dress", "orderDetail":"testOrder", "seller":{ "sellerId":"2160400000002012", "mcc":"1234", "sellerName":"COD" } } |
5 | settleContractId | The settlement contract id. If not provided, the default settlement contract will be used.Merchant might want to be settled in different ways for different situations, each of which could be defined by a settlement contract. For example, a merchant could have a settlement contract for USD settlement while has another settlement contract for CAD settlement. Note: If not provided, the default settlement contract will be used. | string | 64 | N | USD-1 | |
6 | riskInfo | Risk information. Highly recommend to provide | RiskInfo | / | N | { | |
7 | extendInfo | Reserved for extended info | string | 2048 | N | Key/ValueNote the type of "extendInfo" is string. See example in the request sample. | {"productScene":"Prepay/Paybill"} |
8 | notifyUrl | Notify URL for a completed payment | string | 512 | N | https://q43tb6ekkc.execute-api.ap-northeast-1.amazonaws.com/dev/ipay-notify/in-store/2160400000002013 | |
9 | returnUrl | Redirect URL after payment finished | string | 512 | N | After payment is done, the result is returned to this URL via the URL redirect. | https://sbs-mobops.sandbox-payment.com/debug/tc/wap_pay_result.html |
Request Sample
{
"request":{
"head":{
"version":"2.0.0",
"reqMsgId":"2b76d599f8072d042b68bc2f43be4211",
"reqTime":"2018-12-04T22:00:53-08:00",
"clientId":"4Q5XSH6SSG02T006",
"reserve":"{}",
"function":"alipay.intl.acquiring.cashier.wap.pay"
},
"body":{
"merchantId":"2160400000002012",
"productCode":"AGREEMENT_OR_CASHIER_PAY",
"merchantTransId":"201904030205425512477",
"order":{
"seller":{
"sellerId":"2160400000002012",
"sellerName":"COD",
"mcc":"1234"
},
"orderAmount":{
"currency":"HKD",
"value":"1000"
},
"orderDetail":"testOrder",
"orderTitle":"testTitle"
},
"notifyUrl":"https://q43tb6ekkc.execute-api.ap-northeast-1.amazonaws.com/dev/ipay-notify/in-store/2160400000002013",
"returnUrl":"https://sbs-mobops.sandbox-payment.com/debug/tc/wap_pay_result.html",
"extendInfo":"{\"productScene\":\"Prepay\"}"
}
},
"signature":"XXX"
}
Merchant can sign the value of above request sample to get the sign and construct an orderStr sample like below:
{"request":{"head":{"version":"2.0.0","reqMsgId":"2b76d599f8072d042b68bc2f43be4211","reqTime":"2018-12-04T22:00:53-08:00","clientId":"4Q5XSH6SSG02T006","reserve":"{}","function":"alipay.intl.acquiring.cashier.wap.pay"},"body":{"merchantId":"2160400000002012","productCode":"AGREEMENT_OR_CASHIER_PAY","merchantTransId":"201904030205425512477","order":{"seller":{"sellerId":"2160400000002012","sellerName":"COD","mcc":"1234"},"orderAmount":{"currency":"HKD","value":"1000"},"orderDetail":"testOrder","orderTitle":"testTitle"},"notifyUrl":"https://q43tb6ekkc.execute-api.ap-northeast-1.amazonaws.com/dev/ipay-notify/in-store/2160400000002013","returnUrl":"https://sbs-mobops.sandbox-payment.com/debug/tc/wap_pay_result.html ","extendInfo":"{\"productScene\":\"Prepay\"}"}},"signature":"XXX"}
To obtain the signed JS orderStr, see the sample below:
{\"request\":{\"head\":{\"version\":\"2.0.0\",\"reqMsgId\":\"2b76d599f8072d042b68bc2f43be3197\",\"reqTime\":\"2018-12-04T22:00:53-08:00\",\"clientId\":\"4Q5XSH6SSG02T006\",\"reserve\":\"{}\",\"function\":\"alipay.intl.acquiring.cashier.wap.pay\"},\"body\":{\"merchantId\":\"2160400000002012\",\"productCode\":\"AGREEMENT_OR_CASHIER_PAY\",\"merchantTransId\":\"201904030205425512477\",\"order\":{\"seller\":{\"sellerId\":\"2160400000002013\",\"sellerName\":\"COD\",\"mcc\":\"1234\"},\"orderAmount\":{\"currency\":\"HKD\",\"value\":\"1000\"},\"orderDetail\":\"testorder\",\"orderTitle\":\"testTitle\"},\"notifyUrl\":\"https://q43tb6ekkc.execute-api.ap-northeast-1.amazonaws.com/dev/ipay-notify/in-store/2160400000002013\",\"returnUrl\":\"https://sbs-mobops.sandbox-payment.com/debug/tc/wap_pay_result.html\",\"extendInfo\":\"{\\\"productScene\\\":\\\"Prepay\\\"}\"}},\"signature\":\"XXX\"}
Response Sample
CALLBACK illustration
Name | Type | Description |
resultCode | String | The resultCode Status are listed in the following table. |
resultCode Status
resultCode | Implication |
9000 | Successful order payment |
8000 | Under processing, unknown payment result. The payment might be successful, you need to inquiry the order payment status in sellers' orders list. (This code is returned from AlipayHK server side.) |
4000 | Failed order payment |
7001 | The payment is stopped from the client end |
6001 | Canceled by the user during the process |
6002 | Errors exist in the network connection |
6005 | Exceptions occurred in the client end |
5000 | Duplicate payment |
Sample code
<script>
document.addEventListener('AlipayJSBridgeReady', function () {
AlipayJSBridge.call("setTitle", {
title: "iPay test",
subtitle: "alipay.intl.acquiring.cashier.wap.pay"
});
}, false);
function pay(){
var amt = document.getElementById('amt').value;
alert(amt);
$.ajax({
url : '/sbs-api/debug/bsu/wap/pay',
contentType: 'application/json',
method : 'POST',
data : JSON.stringify({"mid":"2160400000002012", "amount":amt}),
success: function(result){
alert(result.order_string);
AlipayJSBridge.call('tradePay', {
orderStr: result.order_string,
version:"2.0.0"
}, function (result) {
alert("callback result:" + JSON.stringify(result));
// if (result.resultCode == 9000) {
// this.resultHandler({ "out_trade_no": result.outTradeNo, "result_code": result.resultCode });
// } else {
// this.resultHandler({ "result_code": result.resultCode });
// }
});
}
});
}
</script>