跳轉型一鍵激活支持用戶在提交會員開卡資料后跳轉至商戶自定義的網頁。不同於普通一鍵激活,跳轉型一鍵激活的激活會員卡動作由商戶完成,商戶可以在跳轉到的網頁內做激活、激活獎勵、開卡條件判斷等邏輯,同時也保證了開卡的實時性,適合使用自定義卡號的商戶使用。
開發使用的是: 盛派SDK
本文章主要說一下,跳轉型一鍵激活遇見的坑
此處的 wx_activate 必須為true,並且activate_url必須置空,否則領取后會員卡后無法激活(點擊激活按鈕無效)
/// <summary>
/// 是否支持跳轉型一鍵激活,填true或lse
/// </summary>
public bool? wx_activate_after_submit { get; set; }
/// <summary>
/// 跳轉型一鍵激活跳轉的地址鏈接,請填寫http://或者https://開頭的鏈接
/// </summary>
public string wx_activate_after_submit_url { get; set; }
/// <summary>
/// 設置為true時會員卡支持一鍵開卡,不允許同時傳入activate_url字段,否則設置wx_activate失效。填入該字段后仍需調用接口設置開卡項方可生效,詳情見 一鍵開卡 。
/// </summary>
public bool wx_activate { get; set; }

在創建完會員卡后,必須調用設置開卡字段接口(沒設置,點擊激活按鈕無效)
URL:https://api.weixin.qq.com/card/membercard/activateuserform/set?access_token=TOKEN 這個API用來設置
var wxset = _wxSetService.GetList(m => m.shopid == shopid).FirstOrDefault();
if (wxset == null)
{
throw new Exception("請先配置微信設置");
}
ActivateUserFormSetData data = new ActivateUserFormSetData();
data.card_id = result_cardId;
var common_field_id_list = new string[] {
"USER_FORM_INFO_FLAG_NAME","USER_FORM_INFO_FLAG_MOBILE","USER_FORM_INFO_FLAG_BIRTHDAY","USER_FORM_INFO_FLAG_DETAIL_LOCATION"
};
data.optional_form = new BaseForm()
{
common_field_id_list = common_field_id_list
};
data.required_form = new BaseForm()
{
common_field_id_list = common_field_id_list
};
try
{
var authorizer_access_token = get_access_token(wxset.appid, wxset.authorizer_refresh_token);
var setResult = CardApi.ActivateUserFormSet(authorizer_access_token, data);
if (setResult.errcode == Senparc.Weixin.ReturnCode.請求成功)
{
return Json(new SuccessActionResult("創建/更新會員卡成功", result_cardId));
}
else
{
return Json(new SuccessActionResult("創建/更新會員卡成功,但是創建選填項出錯,請刪除重試", result_cardId));
}
}
catch (Exception ex)
{
Logger.Debug("創建發生異常:" + ex.Message + ex.StackTrace);
return Json(new SuccessActionResult("創建/更新會員卡成功,但是創建選填項出錯,因為:" + ex.Message, result_cardId));
}

