1)便捷获取门店真实信息2)针对门店进行促销、活动以及订单等场景的消息触达3)获取B2b支付能力
方式1:小程序后台开通
方式2:服务商代开通
注意事项
调用方式
HTTPS调用
返回参数
调用示例
请求数据示例
{"goods_type_list":["食品","其他"],"goods_sale_list":["杂货店","便利店","超市"],"cover_num":"0-5千","service_list":["门店订货"],"description":"使用订货功能,线上下单、配送到店;小程序开发者可以通过消息能力,发送新品上线、活动消息等到小店,引导其跳转到小程序内查看活动信息或者订货","contact_name":"张三","contact_phone":"13712345678","contact_email":"zhangsan@qq.com"}返回数据示例
{"errcode":0,"errmsg":"ok"}常见错误码
方式1:小程序后台页面申请
方式2:开发者工具引用
使用开发者工具运行小程序,并引入插件,在调试器中会提示“添加插件”,点击添加插件,前往小程序管理后台确认即可.
在小程序app.json中配置
重要提醒:version可以填写具体版本号,建议直接填写latest以自动获取最新版插件
注意:“自定义插件名”代表之后使用时需要配置的,文档中使用了"bb-plugin"作为演示。还需要添加permission字段来允许使用定位信息,才可以选择门店地址。
示例中的“bb-plugin”就是在app.json里面配置的自定义的插件名。
返回数据字段:
调用方式:
请求参数说明:
字段内容举例:
{"retail_info_list":[{"mobile_phone":"12345678910","retail_name":"张三烧烤店","retail_type":"餐饮店","address_province":"广东省","address_city":"广州市","address_region":"海珠区","address_street":"新港中路397号TIT创意园","longitude":113.32531,"latitude":23.0996132},{"mobile_phone":"a123456789","retail_type":"便利店","address_province":"广东省","address_city":"广州市","address_region":"海珠区","address_street":"新港中路397号TIT创意园","registration_number":"xxxxx","biz_name":"xxxxx","corporation_name":"xxxxx"}]}返回数据示例:
{"errcode":0,"errmsg":"ok","num_success":1,"num_failure":1,"failure_record_list":[{"mobile_phone":"a123456789","registration_number":"","failure_code":6}]}errcode返回值及含义:
failure_code含义:
响应参数说明:
{"openid":"xxxxx"}返回数据示例:
{"errcode":0,"errmsg":"ok","info":[{"mobile_phone":"12345678910","retail_type":"餐饮店","sub_retail_type":"""retail_address":"广东省广州市海珠区新港中路397号TIT创意园","retail_name":"张三烧烤店","identification":"100000000000000001","principal":"广州张三烧烤店","legal_person_name":"张*","openid":"xxxxxxxxxx","status":1,"auth_time":1655458898,"grant_time":1655458909,"longitude":113.32531,"latitude":23.0996132}]}errcode返回值及含义:
{"limit":100,"page_context":""}返回数据示例
{"errcode":0,"errmsg":"ok","openid_list":["openid1","openid2","..."],"page_context":"page_context1"}常见错误码
1、预录入门店信息后,调取信息完成认证正确方式,以及为什么会出现报错情况?
发送方式:
1)api发送模板消息:调用消息接口,向指定用户发送模板消息2)mp后台群发功能:在mp后台页面投放端,可创建面向指定用户群体的群发任务
{"start":0,"offset":100,"begin_date":"2024-08-10","end_date":"2024-08-15"}返回数据示例
{"errcode":0,"errmsg":"ok","total_num":2,"data_line":[{"msg_id":2,"msg_type":11,"date":"2024-08-13","msg_time":"2024-08-1320:55:37","send_uv":1,"entry_uv":1,"business_msg_id":"XXX"},{"msg_id":1,"msg_type":11,"date":"2024-08-13","msg_time":"2024-08-1320:01:15","send_uv":2,"entry_uv":1,"business_msg_id":"XXX"}]}常见错误码
使用本支付服务,核心包括三个步骤:
3.2、报名技术服务费优惠活动(页面端&接口)
开通成功的商户号,技术服务费费率默认为标准费率。可报名技术服务费优惠活动,获得更低的活动费率。
3.3、支付与退款(接口)
对接接口,完成下单支付与退款操作
3.4、查看账单(页面端&接口)
3.5、提现(页面端&接口)
支持手动提现或者设置自动提现。
可以通过api方式进行商户号的进件。
接口说明
请求方式:POST
请求参数
请求示例
{"id_doc_type_num":1,"id_card_info":{"id_card_copy":"V1_xxxxxxx","id_card_national":"V1_xxxxxx","id_card_name":"小明","id_card_number":"440000199001011111","id_card_valid_time":"2041-01-01","id_card_address":"北京市朝阳区等等等","id_card_valid_time_begin":"2021-01-01"},"account_info":{"bank_account_type":"74","account_bank":"招商银行","account_name":"北京食品有限公司","bank_address_code":"123","account_number":"123"},"contact_info":{"contact_type":"65","contact_name":"小明","contact_id_card_number":"440000199001011111","mobile_phone":"12345678911","contact_email":"test@qq.com"},"business_license":{"business_license_copy":"V1_xxxx","business_license_number":"ABC123","merchant_name":"北京食品有限公司","legal_person":"小明"},"merchant_shortname":"北京食品","organization_type":1}返回示例
{"errcode":0,"errmsg":"OK","order_no":"regorder123"}错误码
可以通过api上传资料获取图片id,进件时填充图片id
可以通过api方式查询商户号进件订单(包含状态信息等)
若支付管理员不是法人,则需进行账户验证,可以选择以下任一方式。
完成商户资料提交及账户验证后,将进入平台审核环节,审核一般需要1-7个工作日,你可以随时进入页面或通过查询API查看最新审核状态。
平台审核通过后,进入最终商户号开通签约环节,请超级管理员根据指引扫码完成签约。
完成签约后,将进入"商户号开通中"状态,平台将为你开通商户号,稍后片刻即可完成最终开通。当状态变成"已开通"后,即可通过该商户号使用本支付服务。
1)当"与小程序关联状态"为"待商户号超管同意"时
2)当"与小程序关联状态"为"待小程序超管同意"时
商户号开通成功后,即可操作报名。
{"sub_mchid":"123","profit_rate":20,}返回示例
{"errcode":0,"errmsg":"OK"}错误码
在基础库wx.requestCommonPayment会涉及用户态签名signature和支付签名paySig,在服务器API接口会涉及支付签名pay_sig,和小程序接口的paySig签名方式一致,都遵循本签名详解。
支付签名
签名算法伪代码为signature=to_hex(hmac_sha256(sessionKey,signData))
用户态签名
签名算法伪代码为:
signature=to_hex(hmac_sha256(sessionKey,signData))参数wxAPI服务器APIsessionKeysession_key获得方式相同,服务器API暂不需要signData基础库的signData字段api的postbody参考的python脚本
以调用getorder为例,签名计算如下:
小程序接口wx.requestCommonPayment(Objectobject)
1)signData
2)Amount
3)ProductInfo
{"signData":"{\"mchid\":\"1654806452\",\"out_trade_no\":\"test1244\",\"description\":\"测试测试\",\"amount\":{\"order_amount\":1,\"currency\":\"CNY\"},\"attach\":\"test_attach\",\"env\":1}","mode":"retail_pay_goods","paySig":"xxxxxxxxxx","signature":"xxxxxxxxxx"}返回参数
object.success回调函数
object.fail回调函数
错误码
通知参数
1)Amount
3、通知示例
{"ToUserName":"gh_xxxxx","FromUserName":"oUpF8uMuAJO_M2pxb1Q9zNjWeS6o","CreateTime":"1698643478","MsgType":"event","Event":"retail_pay_notify","appid":"wx8888888888888888","mchid":"1230000109","out_trade_no":"1217752501201407033233368018","order_id":"o202307291423123564754773","pay_status":"ORDER_PAY_SUCC","pay_time":"2023-07-2017:04:28","attach":"","payer_openid":"oUpF8uMuAJO_M2pxb1Q9zNjWeS6o","amount":{"order_amount":1,"payer_amount":1,"currency":"CNY",},"wxpay_transaction_id":"2123191423123564754773","env":0}应答参数
{"mchid":"1230000109","out_trade_no":"1217752501201407033233368018"}或{"mchid":"1230000109","order_id":"o202307291423123564754773"}返回参数
通知示例
注:
a、订单如需多次退款,请等待前一次退款完成后再发起调用
b、退款接口只是发起退款请求,不表示退款成功,请2分钟后调用退款查询结果轮询退款状态
{"mchid":"1230000109","out_trade_no":"1217752501201407033233368018","out_refund_no":"12177525012014070332321235","refund_amount":1,"refund_from":2,"refund_reason":3}返回参数
返回示例
{"mchid":"1230000109","out_refund_no":"12177525012014070332321235"}或{"mchid":"1230000109","refund_id":"r202307281444591411763685"}返回参数
返回结果
说明
a.资金账单是针对账户整体(包括可提现部分与待结算部分之和)的资金流入流出变动情况
b.文件中的内容是以csv文件格式返回,第一行为表头
c.从第二行起,为数据记录,各参数值以逗号分隔,参数值前增加`符号,为标准键盘1左边键的字符
d.表头字段顺序与说明:
其中,业务名称、业务类型、收支类型有这几种情况:
平台后台页面,提供交易查询、退款查询、以及下载账单能力。
1)技术服务费说明
每笔交易收取的技术服务费=订单金额x技术服务费费率,保留到单位分,最后一位小数按四舍五入。
2)退款返还技术服务费说明
退款的返还技术服务费规则:
发起提现申请后,需要T+1日完成处理并到账。
对于已结算部分的资金,可在"资金管理"页面中申请提现。
可前往"基本配置--自动提现"页面,开启自动提现功能。开启后,平台将每天定时发起提现申请。
{"mchid":"1230000109","status":1,"type":2,"retain_amt":500000}返回参数
{"env":0,"profit_sharing_relation_type":"RELATION_TYPE_SERVICE_PROVIDER","payee_type":"PAYEE_TYPE_EXTERNAL_MERCHANT","payee_id":"1234567890","payee_name":"XXX公司"}返回示例
{"errcode":0,"errmsg":"OK"}错误码说明
可以通过api方式删除分账方
{"env":0,"payee_type":"PAYEE_TYPE_EXTERNAL_MERCHANT","payee_id":"1234567890"}返回示例
可以通过api方式查询分账方
RetailProfitSharingAccountInfo对象字段说明:
{"offset":0,"limit":1000}返回示例
{"account_list":[{"sharing_account_type":"PAYEE_TYPE_EXTERNAL_MERCHANT","sharing_account":"1234567890","add_time":1724222992,"update_time":1724222992,"name":"XXX公司"}],"errcode":0,"errmsg":"OK"}错误码说明
在signData具体支付参数字段(Object类型)中,添加need_profit_sharing的字段,数字0(或者不填)标识不需要分账,数字1标识需要分账
{"signData":"{\"mchid\":\"1654806452\",\"out_trade_no\":\"test1244\",\"description\":\"测试测试\",\"amount\":{\"order_amount\":1,\"currency\":\"CNY\"},\"attach\":\"test_attach\",\"env\":1,\"need_profit_sharing\":1}","mode":"retail_pay_goods","paySig":"xxxxxxxxxx","signature":"xxxxxxxxxx",}返回示例
通过此接口发起分账请求,将结算后的资金分给分账接收方。
单笔订单,单个分账接收方只允许发起一次。单笔订单只允许最多45个接收方,总分账比例金额不超过单笔订单总额的29%。
分账资金的冻结期默认是180天。从订单支付成功之日起,180天内需要发起分账,若180天内未发起分账,待分账资金将会自动解冻给分账方。
{"mchid":"1654806452","out_trade_no":"400128912435668818922107515929","profit_fee":100,"receiver_type":"PAYEE_TYPE_EXTERNAL_MERCHANT","receiver_account":"1654806451"}返回示例
{"out_trade_no":"4001289118922107515929","receiver_type":"PAYEE_TYPE_EXTERNAL_MERCHANT","receiver_account":"15480651"}返回示例
{"out_trade_no":"4001289122107515929","mchid":"16548451","env":0}返回示例
{"out_trade_no":"40012891243522107515929","mchid":"1654806451"}返回示例
{"out_trade_no":"40012891249207515929","out_refund_no":"4001289124357515929","payee_type":"PAYEE_TYPE_EXTERNAL_MERCHANT","payee_id":"165406451","mchid":"166321431"}返回示例
{"out_trade_no":"40012891243522107515929","out_refund_no":"400128912435605688225929","payee_type":"PAYEE_TYPE_EXTERNAL_MERCHANT","payee_id":"165406451","mchid":"166732131"}