
华为支付-商户基础支付场景开发步骤
一、预下单(服务器开发)
开发者按照商户模型调用直连商户预下单或平台类商户/服务商预下单接口获取预支付ID(prepayId)。
为保证支付订单的安全性和可靠性需要对请求body和请求头PayMercAuth对象内的入参排序拼接进行签名。请参考排序拼接和签名示例代码。
构建订单信息参数orderStr。
商户服务器需要将客户端支付接口入参orderStr签名后返回给客户端。
说明:orderStr中sign字段签名规则是将除sign外的参数都做排序拼接后再签名,签名值赋值给sign字段。
以下为开放API接口请求及orderStr构建示例代码片段:
二、拉起华为支付收银台(端侧开发)
商户客户端使用orderStr作为参数调用requestPayment接口拉起Payment Kit支付收银台。
当接口通过.then()方法返回时,则表示当前订单支付成功,通过.catch()方法返回表示订单支付失败。当此次请求有异常时,可通过error.code获取错误码,错误码相关信息请参见错误码。示例代码如下:
说明:如果用户没有提前登录,系统会自动拉起华为账号登录页面让用户登录。支付成功,不建议以客户端返回作为用户的支付结果,需以服务器接收到的结果通知或者查询API返回为准。
三、支付结果回调通知(服务器开发)
支付成功后华为支付服务器会调用开发者提供的回调接口,将支付信息返回给开发者的服务器。
说明:回调接口是开发者调用预下单时的入参字段callbackUrl。
为保证信息合法性,商户服务器需要对返回的支付信息进行SM2验签,验签注意事项:
需直接使用通知的完整内容进行验签。
验签前需要对返回数据进行排序拼接,sign字段是签名值,排序拼接后的待验签内容需要排除sign字段。
验签公钥使用华为支付证书。
四、延伸和拓展
当开发者完成上述能力之后还可以调用以下API接口完成订单相关操作。
直连商户
查询支付订单、申请退款、查询退款订单、查询对账单、查询结算账单。
平台类商户/服务商
查询支付订单、申请退款、查询退款订单、查询对账单、查询结算账单。
本文主要引用参考HarmonyOS官方文档
